I believe the profile manager is finally done for now, I hope.... Added regex patterns to the folder groups to have a standard way to format file names in a given group.

This commit is contained in:
Admin
2020-11-09 22:20:19 -06:00
parent 9f090b0539
commit 8abded6731
4 changed files with 447 additions and 172 deletions
+52 -9
View File
@@ -75,7 +75,7 @@ namespace DataOrganizer
reader.Close();
command.CommandText = "SELECT root_id, name, path FROM folder_root WHERE profile_id = @ID ORDER BY name";
command.CommandText = "SELECT root_id, name, path, pattern_id FROM folder_root WHERE profile_id = @ID ORDER BY name";
foreach(var profile in profiles)
{
@@ -90,7 +90,8 @@ namespace DataOrganizer
{
Name = reader["name"].ToString(),
Id = Convert.ToInt32(reader["root_id"]),
Path = reader["path"].ToString()
Path = reader["path"].ToString(),
PatternId = Convert.ToInt32(reader["pattern_id"])
});
}
@@ -147,7 +148,7 @@ namespace DataOrganizer
id = Convert.ToInt32(command.ExecuteScalar());
command.CommandText = "INSERT INTO main.folder_root (name, path, profile_id) VALUES (@Name, @Path, @ProfileID)";
command.CommandText = "INSERT INTO main.folder_root (name, path, profile_id, pattern_id) VALUES (@Name, @Path, @ProfileID, @Pattern)";
if (profile.FolderGroups != null)
{
@@ -157,6 +158,7 @@ namespace DataOrganizer
command.Parameters.AddWithValue("Name", group.Name);
command.Parameters.AddWithValue("Path", group.Path);
command.Parameters.AddWithValue("ProfileID", id);
command.Parameters.AddWithValue("Pattern", group.PatternId);
command.ExecuteNonQuery();
}
@@ -170,9 +172,9 @@ namespace DataOrganizer
return id;
}
public int InsertNewFolderGroup(Profile profile, string name, string path)
public int InsertNewFolderGroup(Profile profile, string name, string path, int pattern_id)
{
var query = @"INSERT INTO main.folder_root (name, path, profile_id) VALUES (@Name, @Path, @ProfileID)";
var query = @"INSERT INTO main.folder_root (name, path, profile_id, pattern_id) VALUES (@Name, @Path, @ProfileID, @Pattern)";
var id = -1;
using (var connection = new SqliteConnection(ConnectionString))
@@ -182,6 +184,7 @@ namespace DataOrganizer
command.Parameters.AddWithValue("Name", name);
command.Parameters.AddWithValue("Path", path);
command.Parameters.AddWithValue("ProfileID", profile.Id);
command.Parameters.AddWithValue("Pattern", pattern_id);
connection.Open();
@@ -196,16 +199,18 @@ namespace DataOrganizer
return id;
}
public bool UpdateFolderGroup(string newName, string path)
public bool UpdateFolderGroup(FolderGroup group)
{
var query = @"UPDATE main.folder_root SET name = @Name, path = @Path";
var query = @"UPDATE main.folder_root SET name = @Name, path = @Path, pattern_id = @Pattern WHERE root_id = @ID";
using (var connection = new SqliteConnection(ConnectionString))
{
using (var command = new SqliteCommand(query, connection))
{
command.Parameters.AddWithValue("Name", newName);
command.Parameters.AddWithValue("Path", path);
command.Parameters.AddWithValue("Name", group.Name);
command.Parameters.AddWithValue("Path", group.Path);
command.Parameters.AddWithValue("Pattern", group.PatternId);
command.Parameters.AddWithValue("ID", group.Id);
connection.Open();
@@ -272,6 +277,35 @@ namespace DataOrganizer
return true;
}
public List<Namingconvention> GetNamingConventions()
{
var conventions = new List<Namingconvention>();
var query = @"SELECT name, example_text, pattern_id, regex FROM main.naming_pattern";
using (var connection = new SqliteConnection(ConnectionString))
{
using (var command = new SqliteCommand(query, connection))
{
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
conventions.Add(new Namingconvention
{
Regex = reader["regex"].ToString(),
Name = reader["name"].ToString(),
ExampleText = reader["example_text"].ToString(),
Id = Convert.ToInt32(reader["pattern_id"])
});
}
}
}
return conventions;
}
public struct Profile
{
public string Name;
@@ -286,6 +320,15 @@ namespace DataOrganizer
public int Id;
public string Name;
public string Path;
public int PatternId;
}
public struct Namingconvention
{
public int Id;
public string Name;
public string ExampleText;
public string Regex;
}
}
}