diff --git a/Commands/AddCommand.cs b/Commands/AddCommand.cs index 68978ed..350bfd4 100644 --- a/Commands/AddCommand.cs +++ b/Commands/AddCommand.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.Contracts; using TBDel.Models; using TBDel.Services; @@ -7,9 +8,6 @@ namespace TBDel.Commands { public static async Task AddEntry(string[] args) { - // TODO: Add duplicate path check - // TODO: Add support for multiple paths - if (args.Length > 1) { string workingDirectory = Directory.GetCurrentDirectory(); @@ -19,6 +17,12 @@ namespace TBDel.Commands if (File.Exists(absolutePath)) { Console.WriteLine($"Adding: {absolutePath}"); + if (await dbService.EtryExists(absolutePath)) + { + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine("File already exists in the list - No actions performed."); + return; + } var entry = new FileEntry { Id = GenerateUniqueId(dbService), Path = absolutePath, DateAdded = DateTime.Now }; if (await dbService.AddFileEntryAsync(entry)) { @@ -38,6 +42,12 @@ namespace TBDel.Commands else if (Directory.Exists(absolutePath)) { Console.WriteLine($"Adding: {absolutePath}"); + if (await dbService.EtryExists(absolutePath)) + { + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine("Folder already exists in the list - No actions performed."); + return; + } var entry = new FolderEntry() { Id = GenerateUniqueId(dbService), Path = absolutePath, DateAdded = DateTime.Now }; if (await dbService.AddFolderEntryAsync(entry)) { diff --git a/Program.cs b/Program.cs index f53f3fc..012237b 100644 --- a/Program.cs +++ b/Program.cs @@ -4,7 +4,6 @@ namespace TBDel { internal class Program { - // TODO: Add a command to show the Db path // TODO: Add a command to remove a file or folder only from the list static async Task Main(string[] args) { diff --git a/Services/DbService.cs b/Services/DbService.cs index dbc15c9..acb36c2 100644 --- a/Services/DbService.cs +++ b/Services/DbService.cs @@ -106,6 +106,16 @@ namespace TBDel.Services return String.Empty; } + public async Task EtryExists(String path) + { + if (_fileCollection.Find(f => f.Path == path) is not null || _folderCollection.Find(f => f.Path == path) is not null) + { + return await Task.FromResult(true); + } + return await Task.FromResult(false); + } + + } public class DatabaseContent