test_changeorder_test_visua.../Test_ChangeOrder/MoveToTab.cs
Eugen Höglinger 9ff0f0f4cb Initialized
2024-10-09 15:43:39 +02:00

90 lines
4.0 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test_ChangeOrder
{
internal class MoveToTab
{
public List<List<String>> Move(string toTab, List<List<string>> allValues, string selectedValue)
{
//List<List<String>> allValues = new List<List<String>>();
List<string> valuesTab1 = new List<string>();
List<string> valuesTab2 = new List<string>();
string destinationValue = "";
string fileName = "";
string tempFileName = "";
valuesTab1.AddRange(allValues[0]);
valuesTab2.AddRange(allValues[1]);
var renameFiles = new RenameFiles();
if (toTab == "Tab 1")
{
//Übergebenen Wert aus der Liste von 'Tab 2' entfernen
valuesTab2.Remove(selectedValue);
//Zu verschiebende Datei nach 'C:\temp' verschieben, damit es kein Problem mit einer ev. vorhandenen Namensgleichheit gibt
fileName = Path.GetFileName(selectedValue);
tempFileName = "C:\\temp\\" + fileName;
//Datei von Verzeichnis 'Tab 2' ins Verzeichnis 'C:\temp' verschieben
File.Move(selectedValue, tempFileName);
//Die Einträge der Liste von 'Tab 2' umbenennen
renameFiles.Rename(valuesTab2);
//Verzeichnis 'Tab 2' in Verzeichnis 'Tab 1' umbenennen
if (valuesTab1.Count < 10)
{
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + "0" + (valuesTab1.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
}
else
{
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + (valuesTab1.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
}
destinationValue = destinationValue.Replace("Tab 2", "Tab 1");
//Übergebenen Wert in der Liste von 'Tab 1' ans Ende setzen
valuesTab1.Add(destinationValue);
//Datei von Verzeichnis 'Tab 2' ins Verzeichnis 'Tab 1' verschieben
File.Move(tempFileName, destinationValue);
}
else
{
//Übergebenen Wert aus der Liste von 'Tab 1' entfernen
valuesTab1.Remove(selectedValue);
//Zu verschiebende Datei nach 'C:\temp' verschieben, damit es kein Problem mit einer ev. vorhandenen Namensgleichheit gibt
fileName = Path.GetFileName(selectedValue);
tempFileName = "C:\\temp\\" + fileName;
//Datei von Verzeichnis 'Tab 1' ins Verzeichnis 'C:\temp' verschieben
File.Move(selectedValue, tempFileName);
//Die Einträge der Liste von 'Tab 1' umbenennen
renameFiles.Rename(valuesTab1);
//Verzeichnis 'Tab 1' in Verzeichnis 'Tab 2' umbenennen
if (valuesTab2.Count < 10)
{
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + "0" + (valuesTab2.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
}
else
{
destinationValue = Path.GetDirectoryName(selectedValue) + "\\" + (valuesTab2.Count + 1) + fileName.Remove(0, fileName.IndexOf(" "));
}
destinationValue = destinationValue.Replace("Tab 1", "Tab 2");
//Übergebenen Wert in der Liste von 'Tab 2' ans Ende setzen
valuesTab2.Add(destinationValue);
//Datei von Verzeichnis 'Tab 1' ins Verzeichnis 'Tab 2' verschieben
File.Move(tempFileName, destinationValue);
}
//Liste von 'Tab 1' und von 'Tab 2' in 'AllValues' zusammenfassen
allValues.Clear();
allValues.Add(valuesTab1);
allValues.Add(valuesTab2);
return allValues;
}
}
}