diff --git a/Commands/HelpCommand.cs b/Commands/HelpCommand.cs index e056411..9fa0efb 100644 --- a/Commands/HelpCommand.cs +++ b/Commands/HelpCommand.cs @@ -22,6 +22,7 @@ public static class HelpCommand Console.WriteLine(" add Add a file or folder to the list"); Console.WriteLine(" delete Deletes a file or folder"); Console.WriteLine(" deleteall Deletes all items in the list"); + Console.WriteLine(" rmflist Remove an entry ONLY from the list"); Console.WriteLine(" list Lists all items in the list"); Console.WriteLine(" help Shows this help message"); } diff --git a/Commands/RemoveFromListCommand.cs b/Commands/RemoveFromListCommand.cs new file mode 100644 index 0000000..6cfe766 --- /dev/null +++ b/Commands/RemoveFromListCommand.cs @@ -0,0 +1,41 @@ +using TBDel.Services; + +namespace TBDel.Commands; + +public class RemoveFromListCommand +{ + public static async Task DeleteEntryFromList(String[] args) + { + var dbService = new DbService(); + if (args.Length > 1 && uint.TryParse(args[1], out uint id)) + { + Console.ForegroundColor = ConsoleColor.Yellow; + Console.Write($"Are you sure you want to remove the entry with ID {id} ONLY from the list? (y/N) "); + Console.ResetColor(); + var input = Console.ReadLine(); + + if (input != "y") + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Operation cancelled."); + Console.ResetColor(); + return; + } + + if (await dbService.RemoveFileEntryAsync(id) || await dbService.RemoveFolderEntryAsync(id)) + { + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine("Entry removed from the list."); + Console.ResetColor(); + } + else + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Something went wrong while removing the entry from list."); + Console.ResetColor(); + } + } + + + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs index 012237b..6b84ddc 100644 --- a/Program.cs +++ b/Program.cs @@ -4,7 +4,6 @@ namespace TBDel { internal class Program { - // TODO: Add a command to remove a file or folder only from the list static async Task Main(string[] args) { // Show the help message if no arguments are provided @@ -27,6 +26,9 @@ namespace TBDel case "deleteall": await DeleteAllCommand.DeleteAll(); break; + case "rmflist": + await RemoveFromListCommand.DeleteEntryFromList(args); + break; case "list": await ListCommand.List(args); break; diff --git a/README.md b/README.md index 7250265..ab345dc 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Usage: tbdel [arguments] Available commands: add Add a file or folder to the list delete Deletes a file or folder +rmflist Remove an entry ONLY from the list deleteall Deletes all items in the list list Lists all items in the list help Shows this help message @@ -36,6 +37,11 @@ help Shows this help message ```shell tbdel list ``` + +* Remove an entry ONLY from the list: **(Assuming '12345' is the ID of the entry you want to remove from the list)** + ```shell + tbdel rmflist 12345 + ``` * Delete an entry (using its ID): **(Assuming '12345' is the ID of the entry you want to delete)** ```shell