Updated the ProfileManager so that users can change the FolderGroup's name (a very hacky job but it'll do). Hooked up the FileViewers 'Update Databse' button so new files can be commited to the database.

This commit is contained in:
Admin
2020-12-07 19:11:05 -06:00
parent 59725feeec
commit 27aa247c36
7 changed files with 347 additions and 239 deletions
Binary file not shown.
+86 -5
View File
@@ -147,6 +147,34 @@ namespace DataOrganizer
return true;
}
public FolderGroup GetFolderGroupByName(string name, int profileId)
{
var query = @"SELECT root_id, name, path, pattern_id, profile_id FROM main.folder_root WHERE profile_id = @ProfileId AND name = @Name";
using (var connection = new SqliteConnection(ConnectionString))
{
using (var command = new SqliteCommand(query, connection))
{
command.Parameters.AddWithValue("ProfileId", profileId);
command.Parameters.AddWithValue("Name", name);
connection.Open();
var reader = command.ExecuteReader();
reader.Read();
return new FolderGroup
{
Id = Convert.ToInt32(reader["root_id"]),
Name = reader["name"].ToString(),
Path = reader["path"].ToString(),
PatternId = Convert.ToInt32(reader["pattern_id"])
};
}
}
}
public int InsertNewProfile(Profile profile)
{
var query = @"INSERT INTO main.profile (machine_name, default_new_content_folder_name, profile_name) VALUES (@MachineName, @DefaultPath, @Name)";
@@ -440,6 +468,24 @@ namespace DataOrganizer
}
}
public int GetPatternIdByName(string name)
{
if (string.IsNullOrEmpty(name)) return 0;
var query = @"SELECT pattern_id FROM main.naming_pattern WHERE name = @Name";
using (var connection = new SqliteConnection(ConnectionString))
{
connection.Open();
using (var command = new SqliteCommand(query, connection))
{
command.Parameters.AddWithValue("Name", name);
return Convert.ToInt32(command.ExecuteScalar());
}
}
}
public string GetRootPathById(int id)
{
var query = @"SELECT path FROM folder_root WHERE root_id = @ID";
@@ -479,9 +525,9 @@ namespace DataOrganizer
return true;
}
public List<FileSnapshot> GetFilesForProfileByFolderGroup(int profileId, int folderGroupId)
public List<DBFileSnapshot> GetFilesForProfileByFolderGroup(int profileId, int folderGroupId)
{
var files = new List<FileSnapshot>();
var files = new List<DBFileSnapshot>();
var query = @"SELECT * FROM main.file INNER JOIN main.folder_root ON main.file.folder_root_id = main.folder_root.root_id WHERE main.file.profile_id = @ProfileId AND folder_root_id = @GroupId ORDER BY main.file.full_path ASC";
@@ -497,7 +543,7 @@ namespace DataOrganizer
while(reader.Read())
{
files.Add(new FileSnapshot
files.Add(new DBFileSnapshot
{
Id = Convert.ToInt32(reader["file_id"]),
PathNoRoot = reader["full_path"].ToString(),
@@ -517,7 +563,7 @@ namespace DataOrganizer
return files;
}
public void InsertNewFileRecord(List<FileSnapshot> files, int profileId, int folderGroupId, string root)
public void InsertNewFileRecord(List<DBFileSnapshot> files, int profileId, int folderGroupId, string root)
{
var query = @"INSERT INTO main.file (full_path, name, size, date_created, date_modified, folder_root_id, profile_id, pattern_override_id) VALUES (@FullPath, @Name, @Size, @DateCreated, @DateModified, @FolderId, @ProfileId, @PatternId)";
var rootLength = root.Length;
@@ -552,6 +598,41 @@ namespace DataOrganizer
}
}
public void InsertNewFileRecord(List<FileSnapshot> files, int profileId, int folderGroupId, string root)
{
var query = @"INSERT INTO main.file (full_path, name, size, date_created, date_modified, folder_root_id, profile_id, pattern_override_id) VALUES (@FullPath, @Name, @Size, @DateCreated, @DateModified, @FolderId, @ProfileId, @PatternId)";
var rootLength = root.Length;
using (var connection = new SqliteConnection(ConnectionString))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
using (var command = new SqliteCommand(query, connection, transaction))
{
foreach (var file in files)
{
command.Parameters.AddWithValue("FullPath", file.PathNoRoot);
command.Parameters.AddWithValue("Name", file.Name);
command.Parameters.AddWithValue("Size", file.Size);
command.Parameters.AddWithValue("DateCreated", file.CreatedDate);
command.Parameters.AddWithValue("DateModified", file.ModifiedDate);
command.Parameters.AddWithValue("FolderId", folderGroupId);
command.Parameters.AddWithValue("ProfileId", profileId);
command.Parameters.AddWithValue("PatternId", GetPatternIdByName(file.NamingPattern));
command.ExecuteNonQuery();
command.Parameters.Clear();
}
}
transaction.Commit();
}
}
}
public struct Profile
{
public string Name;
@@ -578,7 +659,7 @@ namespace DataOrganizer
public string Regex;
}
public struct FileSnapshot
public struct DBFileSnapshot
{
public int Id;
public string PathNoRoot;
+7 -4
View File
@@ -67,7 +67,10 @@ namespace DataOrganizer
private void CommitScanResultsButton_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
var newFiles = ActiveSnapshotForPrimaryTree.Files.Values.Where(x => x.Status == FileSnapshot.FileStatus.PendingInsert).ToList();
var db = new DB();
db.InsertNewFileRecord(newFiles, GetActiveProfile().Id, GetActiveFolderGroup().Id, GetActiveFolderGroup().Path);
}
private void FolderSelectButton_Click1(object sender, EventArgs e)
@@ -319,17 +322,17 @@ namespace DataOrganizer
}
}
private List<DB.FileSnapshot> GetFileSnapshots(string path)
private List<DB.DBFileSnapshot> GetFileSnapshots(string path)
{
var dir = new DirectoryInfo(path);
var profile = GetActiveProfile();
var folderGroup = GetActiveFolderGroup();
var snapshots = new List<DB.FileSnapshot>();
var snapshots = new List<DB.DBFileSnapshot>();
foreach(var file in dir.EnumerateFiles())
{
snapshots.Add(new DB.FileSnapshot
snapshots.Add(new DB.DBFileSnapshot
{
PathNoRoot = file.FullName,
Name = file.Name,
+1 -1
View File
@@ -179,7 +179,7 @@
this.DeleteButton.Enabled = false;
this.DeleteButton.Location = new System.Drawing.Point(13, 388);
this.DeleteButton.Name = "DeleteButton";
this.DeleteButton.Size = new System.Drawing.Size(107, 47);
this.DeleteButton.Size = new System.Drawing.Size(111, 47);
this.DeleteButton.TabIndex = 8;
this.DeleteButton.Text = "Delete";
this.DeleteButton.UseVisualStyleBackColor = true;
+184 -186
View File
@@ -33,34 +33,34 @@
this.ProfilesComboBox = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.ProfileInfoPanel = new System.Windows.Forms.Panel();
this.InsertGroupName = new System.Windows.Forms.Button();
this.DeleteProfileButton = new System.Windows.Forms.Button();
this.MachineNameTextBox = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.ProfileNameTextBox = new System.Windows.Forms.TextBox();
this.MachineNameLabel = new System.Windows.Forms.Label();
this.AddOrUpdateProfileButton = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.SelectNewContentLocationButton = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.NewContentLocationTextBox = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.FolderNameTextBox = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.NamingConventionComboBox = new System.Windows.Forms.ComboBox();
this.label5 = new System.Windows.Forms.Label();
this.FolderGroupPathTextBox = new System.Windows.Forms.TextBox();
this.FolderGroupPathButton = new System.Windows.Forms.Button();
this.InsertGroupName = new System.Windows.Forms.Button();
this.FolderGroupListView = new System.Windows.Forms.ListView();
this.NameColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.label5 = new System.Windows.Forms.Label();
this.NamingConventionComboBox = new System.Windows.Forms.ComboBox();
this.FolderGroupPathButton = new System.Windows.Forms.Button();
this.label6 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label7 = new System.Windows.Forms.Label();
this.FolderNameTextBox = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.NewContentLocationTextBox = new System.Windows.Forms.TextBox();
this.MachineNameTextBox = new System.Windows.Forms.TextBox();
this.AddOrUpdateProfileButton = new System.Windows.Forms.Button();
this.DeleteProfileButton = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.ProfileNameTextBox = new System.Windows.Forms.TextBox();
this.SelectNewContentLocationButton = new System.Windows.Forms.Button();
this.label4 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.MachineNameLabel = new System.Windows.Forms.Label();
this.MainLayoutPanel.SuspendLayout();
this.MainPanel.SuspendLayout();
this.ProfileInfoPanel.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// MainLayoutPanel
@@ -116,6 +116,65 @@
this.ProfileInfoPanel.Size = new System.Drawing.Size(1283, 440);
this.ProfileInfoPanel.TabIndex = 1;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.FolderNameTextBox);
this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Controls.Add(this.NamingConventionComboBox);
this.groupBox2.Controls.Add(this.label5);
this.groupBox2.Controls.Add(this.FolderGroupPathTextBox);
this.groupBox2.Controls.Add(this.InsertGroupName);
this.groupBox2.Controls.Add(this.FolderGroupListView);
this.groupBox2.Controls.Add(this.FolderGroupPathButton);
this.groupBox2.Controls.Add(this.label6);
this.groupBox2.Location = new System.Drawing.Point(620, 3);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(658, 430);
this.groupBox2.TabIndex = 18;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Folder Group Details";
//
// FolderNameTextBox
//
this.FolderNameTextBox.Location = new System.Drawing.Point(163, 273);
this.FolderNameTextBox.Name = "FolderNameTextBox";
this.FolderNameTextBox.Size = new System.Drawing.Size(311, 26);
this.FolderNameTextBox.TabIndex = 5;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(6, 276);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(104, 20);
this.label7.TabIndex = 15;
this.label7.Text = "Group Name:";
//
// NamingConventionComboBox
//
this.NamingConventionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.NamingConventionComboBox.FormattingEnabled = true;
this.NamingConventionComboBox.Location = new System.Drawing.Point(163, 377);
this.NamingConventionComboBox.Name = "NamingConventionComboBox";
this.NamingConventionComboBox.Size = new System.Drawing.Size(311, 28);
this.NamingConventionComboBox.TabIndex = 8;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(6, 380);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(151, 20);
this.label5.TabIndex = 15;
this.label5.Text = "Naming Convention:";
//
// FolderGroupPathTextBox
//
this.FolderGroupPathTextBox.Location = new System.Drawing.Point(163, 325);
this.FolderGroupPathTextBox.Name = "FolderGroupPathTextBox";
this.FolderGroupPathTextBox.Size = new System.Drawing.Size(311, 26);
this.FolderGroupPathTextBox.TabIndex = 6;
//
// InsertGroupName
//
this.InsertGroupName.Enabled = false;
@@ -127,122 +186,6 @@
this.InsertGroupName.UseVisualStyleBackColor = true;
this.InsertGroupName.Click += new System.EventHandler(this.InsertGroupName_Click);
//
// DeleteProfileButton
//
this.DeleteProfileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.DeleteProfileButton.Location = new System.Drawing.Point(17, 320);
this.DeleteProfileButton.Name = "DeleteProfileButton";
this.DeleteProfileButton.Size = new System.Drawing.Size(75, 40);
this.DeleteProfileButton.TabIndex = 8;
this.DeleteProfileButton.TabStop = false;
this.DeleteProfileButton.Text = "Delete";
this.DeleteProfileButton.UseVisualStyleBackColor = true;
this.DeleteProfileButton.Click += new System.EventHandler(this.DeleteProfileButton_Click);
//
// MachineNameTextBox
//
this.MachineNameTextBox.Location = new System.Drawing.Point(195, 253);
this.MachineNameTextBox.Name = "MachineNameTextBox";
this.MachineNameTextBox.Size = new System.Drawing.Size(311, 26);
this.MachineNameTextBox.TabIndex = 4;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(10, 256);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(119, 20);
this.label4.TabIndex = 7;
this.label4.Text = "Machine Name:";
//
// ProfileNameTextBox
//
this.ProfileNameTextBox.Location = new System.Drawing.Point(198, 39);
this.ProfileNameTextBox.Name = "ProfileNameTextBox";
this.ProfileNameTextBox.Size = new System.Drawing.Size(311, 26);
this.ProfileNameTextBox.TabIndex = 1;
//
// MachineNameLabel
//
this.MachineNameLabel.AutoSize = true;
this.MachineNameLabel.Location = new System.Drawing.Point(13, 186);
this.MachineNameLabel.Name = "MachineNameLabel";
this.MachineNameLabel.Size = new System.Drawing.Size(88, 20);
this.MachineNameLabel.TabIndex = 5;
this.MachineNameLabel.Text = "profile stuff";
//
// AddOrUpdateProfileButton
//
this.AddOrUpdateProfileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.AddOrUpdateProfileButton.Location = new System.Drawing.Point(479, 320);
this.AddOrUpdateProfileButton.Name = "AddOrUpdateProfileButton";
this.AddOrUpdateProfileButton.Size = new System.Drawing.Size(86, 40);
this.AddOrUpdateProfileButton.TabIndex = 10;
this.AddOrUpdateProfileButton.Text = "button1";
this.AddOrUpdateProfileButton.UseVisualStyleBackColor = true;
this.AddOrUpdateProfileButton.Click += new System.EventHandler(this.AddOrUpdateProfileButton_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 42);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(103, 20);
this.label1.TabIndex = 0;
this.label1.Text = "Profile Name:";
//
// SelectNewContentLocationButton
//
this.SelectNewContentLocationButton.Location = new System.Drawing.Point(512, 119);
this.SelectNewContentLocationButton.Name = "SelectNewContentLocationButton";
this.SelectNewContentLocationButton.Size = new System.Drawing.Size(50, 30);
this.SelectNewContentLocationButton.TabIndex = 3;
this.SelectNewContentLocationButton.Text = "...";
this.SelectNewContentLocationButton.UseVisualStyleBackColor = true;
this.SelectNewContentLocationButton.Click += new System.EventHandler(this.SelectNewContentLocationButton_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(13, 124);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(170, 20);
this.label2.TabIndex = 2;
this.label2.Text = "New Content Location:";
//
// NewContentLocationTextBox
//
this.NewContentLocationTextBox.Location = new System.Drawing.Point(195, 121);
this.NewContentLocationTextBox.Name = "NewContentLocationTextBox";
this.NewContentLocationTextBox.Size = new System.Drawing.Size(311, 26);
this.NewContentLocationTextBox.TabIndex = 2;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(6, 328);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(144, 20);
this.label6.TabIndex = 11;
this.label6.Text = "Folder Group Path:";
//
// FolderGroupPathTextBox
//
this.FolderGroupPathTextBox.Location = new System.Drawing.Point(163, 325);
this.FolderGroupPathTextBox.Name = "FolderGroupPathTextBox";
this.FolderGroupPathTextBox.Size = new System.Drawing.Size(311, 26);
this.FolderGroupPathTextBox.TabIndex = 6;
//
// FolderGroupPathButton
//
this.FolderGroupPathButton.Location = new System.Drawing.Point(480, 323);
this.FolderGroupPathButton.Name = "FolderGroupPathButton";
this.FolderGroupPathButton.Size = new System.Drawing.Size(50, 30);
this.FolderGroupPathButton.TabIndex = 7;
this.FolderGroupPathButton.Text = "...";
this.FolderGroupPathButton.UseVisualStyleBackColor = true;
this.FolderGroupPathButton.Click += new System.EventHandler(this.FolderGroupPathButton_Click);
//
// FolderGroupListView
//
this.FolderGroupListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
@@ -265,23 +208,24 @@
this.NameColumn.Text = "Name";
this.NameColumn.Width = 623;
//
// label5
// FolderGroupPathButton
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(6, 380);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(151, 20);
this.label5.TabIndex = 15;
this.label5.Text = "Naming Convention:";
this.FolderGroupPathButton.Location = new System.Drawing.Point(480, 323);
this.FolderGroupPathButton.Name = "FolderGroupPathButton";
this.FolderGroupPathButton.Size = new System.Drawing.Size(50, 30);
this.FolderGroupPathButton.TabIndex = 7;
this.FolderGroupPathButton.Text = "...";
this.FolderGroupPathButton.UseVisualStyleBackColor = true;
this.FolderGroupPathButton.Click += new System.EventHandler(this.FolderGroupPathButton_Click);
//
// NamingConventionComboBox
// label6
//
this.NamingConventionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.NamingConventionComboBox.FormattingEnabled = true;
this.NamingConventionComboBox.Location = new System.Drawing.Point(163, 377);
this.NamingConventionComboBox.Name = "NamingConventionComboBox";
this.NamingConventionComboBox.Size = new System.Drawing.Size(311, 28);
this.NamingConventionComboBox.TabIndex = 8;
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(6, 328);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(144, 20);
this.label6.TabIndex = 11;
this.label6.Text = "Folder Group Path:";
//
// groupBox1
//
@@ -303,41 +247,6 @@
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Profile Details";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.FolderNameTextBox);
this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Controls.Add(this.NamingConventionComboBox);
this.groupBox2.Controls.Add(this.label5);
this.groupBox2.Controls.Add(this.FolderGroupPathTextBox);
this.groupBox2.Controls.Add(this.InsertGroupName);
this.groupBox2.Controls.Add(this.FolderGroupListView);
this.groupBox2.Controls.Add(this.FolderGroupPathButton);
this.groupBox2.Controls.Add(this.label6);
this.groupBox2.Location = new System.Drawing.Point(620, 3);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(658, 430);
this.groupBox2.TabIndex = 18;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Folder Group Details";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(6, 276);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(104, 20);
this.label7.TabIndex = 15;
this.label7.Text = "Group Name:";
//
// FolderNameTextBox
//
this.FolderNameTextBox.Enabled = false;
this.FolderNameTextBox.Location = new System.Drawing.Point(163, 273);
this.FolderNameTextBox.Name = "FolderNameTextBox";
this.FolderNameTextBox.Size = new System.Drawing.Size(311, 26);
this.FolderNameTextBox.TabIndex = 5;
//
// label8
//
this.label8.AutoSize = true;
@@ -347,6 +256,95 @@
this.label8.TabIndex = 10;
this.label8.Text = "New content location is the default location where you will add new files to.";
//
// NewContentLocationTextBox
//
this.NewContentLocationTextBox.Location = new System.Drawing.Point(195, 121);
this.NewContentLocationTextBox.Name = "NewContentLocationTextBox";
this.NewContentLocationTextBox.Size = new System.Drawing.Size(311, 26);
this.NewContentLocationTextBox.TabIndex = 2;
//
// MachineNameTextBox
//
this.MachineNameTextBox.Location = new System.Drawing.Point(195, 253);
this.MachineNameTextBox.Name = "MachineNameTextBox";
this.MachineNameTextBox.Size = new System.Drawing.Size(311, 26);
this.MachineNameTextBox.TabIndex = 4;
//
// AddOrUpdateProfileButton
//
this.AddOrUpdateProfileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.AddOrUpdateProfileButton.Location = new System.Drawing.Point(519, 380);
this.AddOrUpdateProfileButton.Name = "AddOrUpdateProfileButton";
this.AddOrUpdateProfileButton.Size = new System.Drawing.Size(86, 40);
this.AddOrUpdateProfileButton.TabIndex = 10;
this.AddOrUpdateProfileButton.Text = "button1";
this.AddOrUpdateProfileButton.UseVisualStyleBackColor = true;
this.AddOrUpdateProfileButton.Click += new System.EventHandler(this.AddOrUpdateProfileButton_Click);
//
// DeleteProfileButton
//
this.DeleteProfileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.DeleteProfileButton.Location = new System.Drawing.Point(14, 380);
this.DeleteProfileButton.Name = "DeleteProfileButton";
this.DeleteProfileButton.Size = new System.Drawing.Size(75, 40);
this.DeleteProfileButton.TabIndex = 8;
this.DeleteProfileButton.TabStop = false;
this.DeleteProfileButton.Text = "Delete";
this.DeleteProfileButton.UseVisualStyleBackColor = true;
this.DeleteProfileButton.Click += new System.EventHandler(this.DeleteProfileButton_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(13, 124);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(170, 20);
this.label2.TabIndex = 2;
this.label2.Text = "New Content Location:";
//
// ProfileNameTextBox
//
this.ProfileNameTextBox.Location = new System.Drawing.Point(198, 39);
this.ProfileNameTextBox.Name = "ProfileNameTextBox";
this.ProfileNameTextBox.Size = new System.Drawing.Size(311, 26);
this.ProfileNameTextBox.TabIndex = 1;
//
// SelectNewContentLocationButton
//
this.SelectNewContentLocationButton.Location = new System.Drawing.Point(512, 119);
this.SelectNewContentLocationButton.Name = "SelectNewContentLocationButton";
this.SelectNewContentLocationButton.Size = new System.Drawing.Size(50, 30);
this.SelectNewContentLocationButton.TabIndex = 3;
this.SelectNewContentLocationButton.Text = "...";
this.SelectNewContentLocationButton.UseVisualStyleBackColor = true;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(10, 256);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(119, 20);
this.label4.TabIndex = 7;
this.label4.Text = "Machine Name:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 42);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(103, 20);
this.label1.TabIndex = 0;
this.label1.Text = "Profile Name:";
//
// MachineNameLabel
//
this.MachineNameLabel.AutoSize = true;
this.MachineNameLabel.Location = new System.Drawing.Point(13, 186);
this.MachineNameLabel.Name = "MachineNameLabel";
this.MachineNameLabel.Size = new System.Drawing.Size(88, 20);
this.MachineNameLabel.TabIndex = 5;
this.MachineNameLabel.Text = "profile stuff";
//
// ProfileManager
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
@@ -364,10 +362,10 @@
this.MainPanel.ResumeLayout(false);
this.MainPanel.PerformLayout();
this.ProfileInfoPanel.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
}
+64 -38
View File
@@ -21,6 +21,7 @@ namespace DataOrganizer
private List<DB.Namingconvention> NamingConventions { get; }
private Dictionary<string, DB.Profile> Profiles { get; } = new Dictionary<string, DB.Profile>();
private Dictionary<string, DB.FolderGroup> FolderGroups { get; } = new Dictionary<string, DB.FolderGroup>();
private DB.FolderGroup ActiveFolderGroup { get; set; }
public ProfileManager()
{
@@ -43,6 +44,8 @@ namespace DataOrganizer
NewContentLocationTextBox.TextChanged += ToggleAddOrUpdateButton;
MachineNameTextBox.TextChanged += MachineNameTextBox_TextChanged;
FolderGroupPathTextBox.TextChanged += ToggleGroupInsertButton;
FolderNameTextBox.TextChanged += ToggleGroupInsertButton;
FolderGroupListView.SelectedIndexChanged += FolderGroupListView_SelectedIndexChanged;
FolderGroupListView.MouseClick += FolderGroupListView_MouseClick;
SelectNewContentLocationButton.Click += SelectNewContentLocationButton_Click1;
deleteMenuItem.Click += DeleteMenuItem_Click;
@@ -51,6 +54,23 @@ namespace DataOrganizer
SetupForNewProfile();
}
private void FolderGroupListView_SelectedIndexChanged(object sender, EventArgs e)
{
var db = new DB();
GetSelectedFolderGroup(out DB.FolderGroup folderGroup);
FolderGroupPathTextBox.Text = folderGroup.Path;
FolderNameTextBox.Text = folderGroup.Name;
var index = NamingConventions.FindIndex(x => x.Id == folderGroup.PatternId);
if (index != -1)
NamingConventionComboBox.SelectedIndex = index + 1;
else
NamingConventionComboBox.SelectedIndex = 0;
InsertGroupName.Text = "Update Folder Group";
}
private void SelectNewContentLocationButton_Click1(object sender, EventArgs e)
{
var dialog = new FolderBrowserDialog() { Description = "Select the folder where new content will be placed." };
@@ -124,7 +144,7 @@ namespace DataOrganizer
private void ToggleGroupInsertButton(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(FolderGroupPathTextBox.Text))
if (!string.IsNullOrEmpty(FolderGroupPathTextBox.Text) && !string.IsNullOrEmpty(FolderNameTextBox.Text))
InsertGroupName.Enabled = true;
else
InsertGroupName.Enabled = false;
@@ -181,16 +201,45 @@ namespace DataOrganizer
private void InsertGroupName_Click(object sender, EventArgs e)
{
if (FolderGroups.ContainsKey(FolderNameTextBox.Text))
{
MessageBox.Show($"'{FolderNameTextBox.Text}' already exists as a Folder Group. Duplicate names are not allowed.", "Duplication Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
FolderNameTextBox.Focus();
return;
}
FolderGroupPathTextBox.Text = FolderGroupPathTextBox.Text.TrimEnd(new char[] { '\\' });
var dir = new DirectoryInfo(FolderGroupPathTextBox.Text);
var groupName = dir.Name;
if (!FolderGroups.ContainsKey(groupName))
if(GetSelectedFolderGroup(out DB.FolderGroup folderGroup))
{
FolderGroups.Remove(folderGroup.Name);
folderGroup.Path = FolderGroupPathTextBox.Text;
folderGroup.Name = FolderNameTextBox.Text;
GetCurrentNamingConvention(out DB.Namingconvention convention);
folderGroup.PatternId = convention.Id;
InsertGroupName.Text = "Insert Folder Group";
if (IsUpdating)
{
var db = new DB();
db.UpdateFolderGroup(folderGroup);
FolderGroupListView.SelectedItems[0].Text = folderGroup.Name;
}
FolderGroups.Add(folderGroup.Name, folderGroup);
NamingConventionComboBox.SelectedIndex = 0;
FolderNameTextBox.Text = string.Empty;
FolderGroupPathTextBox.Text = string.Empty;
InsertGroupName.Enabled = false;
}
else
{
var groupName = FolderNameTextBox.Text;
GetCurrentNamingConvention(out DB.Namingconvention convention);
GetCurrentProfile(out DB.Profile profile);
var newFolder = new DB.FolderGroup { Name = groupName, Path = FolderGroupPathTextBox.Text, PatternId = convention.Id};
var newFolder = new DB.FolderGroup { Name = groupName, Path = FolderGroupPathTextBox.Text, PatternId = convention.Id };
FolderGroupListView.Items.Add(groupName);
@@ -212,28 +261,6 @@ namespace DataOrganizer
FolderGroupPathTextBox.Text = string.Empty;
InsertGroupName.Enabled = false;
}
else
{
var folderGroup = FolderGroups[groupName];//(DB.FolderGroup) FolderGroupListView.Items.Find(groupName, true)[0].Tag;
folderGroup.Path = FolderGroupPathTextBox.Text;
folderGroup.Name = groupName;
GetCurrentNamingConvention(out DB.Namingconvention convention);
folderGroup.PatternId = convention.Id;
InsertGroupName.Text = "Insert Folder Group";
if (IsUpdating)
{
var db = new DB();
db.UpdateFolderGroup(folderGroup);
}
FolderGroups[groupName] = folderGroup;
NamingConventionComboBox.SelectedIndex = 0;
FolderNameTextBox.Text = string.Empty;
FolderGroupPathTextBox.Text = string.Empty;
InsertGroupName.Enabled = false;
}
FolderGroupPathButton.Focus();
}
@@ -297,6 +324,8 @@ namespace DataOrganizer
{
FolderGroupPathTextBox.Text = dialog.SelectedPath;
InsertGroupName.Text = "Insert Folder Group";
var dir = new DirectoryInfo(dialog.SelectedPath);
FolderNameTextBox.Text = dir.Name;
}
}
@@ -413,6 +442,13 @@ namespace DataOrganizer
{
ClearForm();
IsUpdating = true;
Profiles.Clear();
var db = new DB();
foreach(var p in db.GetProfiles())
{
Profiles.Add(p.Name, p);
}
GetCurrentProfile(out DB.Profile profile);
@@ -435,15 +471,5 @@ namespace DataOrganizer
AddOrUpdateProfileButton.Enabled = true;
DeleteProfileButton.Enabled = true;
}
private void SelectNewContentLocationButton_Click(object sender, EventArgs e)
{
var dialog = new FolderBrowserDialog() { Description = "Select the default location to look for new content." };
if (dialog.ShowDialog() == DialogResult.OK)
{
NewContentLocationTextBox.Text = dialog.SelectedPath;
}
}
}
}
+5 -5
View File
@@ -19,7 +19,7 @@ namespace DataOrganizer
//with the text "Death Note" would return all files in that folder.
public Dictionary<string, List<FileSnapshot>> OrganizationFolders { get; private set; } = new Dictionary<string, List<FileSnapshot>>();
public Snapshot(List<DB.FileSnapshot> fileRecords, DB.FolderGroup folderGroup)
public Snapshot(List<DB.DBFileSnapshot> fileRecords, DB.FolderGroup folderGroup)
{
Root = new Folder(folderGroup.Name, folderGroup.Path, null);
Directories.Add(Root.FullPath, Root);
@@ -39,7 +39,7 @@ namespace DataOrganizer
ProcessFilesAsOneLevel(files, folderGroup);
}
private void ProcessFilesAsOneLevel(List<DB.FileSnapshot> files, DB.FolderGroup folderGroup)
private void ProcessFilesAsOneLevel(List<DB.DBFileSnapshot> files, DB.FolderGroup folderGroup)
{
Folder firstLevelFolder = null;
@@ -137,7 +137,7 @@ namespace DataOrganizer
}
}
private void ProcessFilesAsFlat(List<DB.FileSnapshot> files, DB.FolderGroup folderGroup)
private void ProcessFilesAsFlat(List<DB.DBFileSnapshot> files, DB.FolderGroup folderGroup)
{
}
@@ -213,7 +213,7 @@ namespace DataOrganizer
public struct Duplicate
{
public DB.FileSnapshot File;
public DB.DBFileSnapshot File;
public List<FileSnapshot> Duplicates;
}
}
@@ -324,7 +324,7 @@ namespace DataOrganizer
get { return _Name; }
}
public FileSnapshot(DB.FileSnapshot file, Folder organizationalFolder, Folder parentFolder, string rootPath)
public FileSnapshot(DB.DBFileSnapshot file, Folder organizationalFolder, Folder parentFolder, string rootPath)
{
OrganizationalFolder = organizationalFolder;
ParentFolder = parentFolder;