Added functionality to the '...' button for the 'Default New Contents' folder option on the ProfileManager form. Added a way for the user to move all newly discovered files to their default new content location.

This commit is contained in:
Admin
2020-12-06 23:02:18 -06:00
parent 9f9fdac66a
commit 21645be4ef
4 changed files with 170 additions and 78 deletions
+42 -3
View File
@@ -38,10 +38,36 @@ namespace DataOrganizer
RootFolderComboBox.SelectedIndexChanged += SelectedFolderComboBox_SelectedIndexChanged;
PrimaryFilesTreeView.NodeMouseClick += PrimaryFilesTreeView_NodeMouseClick;
FolderSelectButton.Click += FolderSelectButton_Click1;
CommitScanResultsButton.Click += CommitScanResultsButton_Click;
MoveModifiedFilesButton.Click += MoveModifiedFilesButton_Click;
ProfileComboBox.SelectedIndex = 0;
}
private void MoveModifiedFilesButton_Click(object sender, EventArgs e)
{
var profile = GetActiveProfile();
var folderGroup = GetActiveFolderGroup();
var files = new List<FileSnapshot>();
files.AddRange(ActiveSnapshotForPrimaryTree.Files.Values.Where(x => x.Status == FileSnapshot.FileStatus.PendingInsert || x.Status == FileSnapshot.FileStatus.PendingUpdate));
foreach(var file in files)
{
var path = file.ParentFolder.FullPath.Remove(0, folderGroup.Path.Length + 1);
var newFilePath = Path.Combine(profile.DefaultNewContentFolder, file.PathNoRoot);
Directory.CreateDirectory(Path.Combine(profile.DefaultNewContentFolder, path));
UpdateStatusStrip($"Moving {file.Name} to default location '{profile.DefaultNewContentFolder}'.");
if(!File.Exists(newFilePath)) File.Copy(file.FullPath, newFilePath);
}
}
private void CommitScanResultsButton_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}
private void FolderSelectButton_Click1(object sender, EventArgs e)
{
WriteFilesToDb(GetActiveFolderGroup().Path);
@@ -72,12 +98,14 @@ namespace DataOrganizer
var files = db.GetFilesForProfileByFolderGroup(profile.Id, folderGroup.Id);
ActiveSnapshotForPrimaryTree = new Snapshot(files, folderGroup);
//if(ActiveSnapshotForPrimaryTree.Directories.ContainsKey(@"W:\Test\Amagi Brilliant Park\Season 1")) ActiveSnapshotForPrimaryTree.DeleteFolder(ActiveSnapshotForPrimaryTree.Directories[@"W:\Test\Amagi Brilliant Park\Season 1"]);
foreach(var folder in ActiveSnapshotForPrimaryTree.Root.Folders)
{
PrimaryFilesTreeView.Nodes.Add(GetNodeFromSnapshot(folder));
}
CommitScanResultsButton.Enabled = false;
MoveModifiedFilesButton.Enabled = false;
ScanResultsLabel.Text = string.Empty;
}
private TreeNode GetNodeFromSnapshot(KeyValuePair<string, Folder> folder)
@@ -134,6 +162,9 @@ namespace DataOrganizer
}
RootFolderComboBox.Enabled = true;
CommitScanResultsButton.Enabled = false;
MoveModifiedFilesButton.Enabled = false;
ScanResultsLabel.Text = string.Empty;
}
private void FolderSelectButton_Click(object sender, EventArgs e)
@@ -161,6 +192,8 @@ namespace DataOrganizer
private void ScanRootFolderButton_Click(object sender, EventArgs e)
{
CommitScanResultsButton.Enabled = false;
MoveModifiedFilesButton.Enabled = false;
var folderGroup = GetActiveFolderGroup();
var files = new List<FileInfo>();
var rootFolder = new DirectoryInfo(folderGroup.Path);
@@ -218,7 +251,13 @@ namespace DataOrganizer
modifiedFilesCount++;
}
label8.Text = $"New Files: {newFilesCount}{Environment.NewLine}Modified Files: {modifiedFilesCount}{Environment.NewLine}Deleted Files: {deletedFilesCount}";
ScanResultsLabel.Text = $"New Files: {newFilesCount}{Environment.NewLine}Modified Files: {modifiedFilesCount}{Environment.NewLine}Deleted Files: {deletedFilesCount}";
if(newFilesCount > 0 || modifiedFilesCount > 0)
{
CommitScanResultsButton.Enabled = true;
MoveModifiedFilesButton.Enabled = true;
}
}
private List<Folder> ProcessFileFolders(FileSnapshot file)