Implemented unique Id for each entry - Implemented delete single entry command

This commit is contained in:
2025-02-04 13:56:40 +03:30
parent 83347587e4
commit 9b1d6aebe7
6 changed files with 194 additions and 175 deletions
+40 -46
View File
@@ -1,55 +1,49 @@
using TBDel.Services;
namespace TBDel.Commands;
public class DeleteCAllCommand
namespace TBDel.Commands
{
public static async Task DeleteAll()
public class DeleteAllCommand
{
var dbService = new DbService();
var allFiles = await dbService.GetFileEntriesAsync();
var allFolders = await dbService.GetFolderEntriesAsync();
if (allFiles.Count == 0 && allFolders.Count == 0)
public static async Task DeleteAll()
{
Console.WriteLine("No files or folders found.");
return;
}
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine($"Are you sure you want to permanently delete {allFiles.Count} file(s) and {allFolders.Count} folder(s)? (y/N)");
Console.ResetColor();
var input = Console.ReadLine();
if (input != "y")
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Operation cancelled.");
var dbService = new DbService();
var allFiles = await dbService.GetFileEntriesAsync();
var allFolders = await dbService.GetFolderEntriesAsync();
if (allFiles.Count == 0 && allFolders.Count == 0)
{
Console.WriteLine("No files or folders found.");
return;
}
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write($"Are you sure you want to permanently delete {allFiles.Count} file(s) and {allFolders.Count} folder(s)? (y/N)");
Console.ResetColor();
var input = Console.ReadLine();
if (input != "y")
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Operation cancelled.");
Console.ResetColor();
return;
}
foreach (var file in allFiles)
{
Console.WriteLine($"Deleting file: {file.Path}");
File.Delete(file.Path);
await dbService.RemoveFileEntryAsync(file.Id);
}
foreach (var folder in allFolders)
{
Console.WriteLine($"Deleting directory: {folder.Path}");
Directory.Delete(folder.Path, true);
await dbService.RemoveFolderEntryAsync(folder.Id);
}
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("All files and folders deleted successfully.");
Console.ResetColor();
return;
}
var toBeDeletedFiles = new List<string>();
var toBeDeletedFolders = new List<string>();
foreach (var file in allFiles)
{
toBeDeletedFiles.Add(file.Path);
}
foreach (var folder in allFolders)
{
toBeDeletedFolders.Add(folder.Path);
}
foreach (var file in toBeDeletedFiles)
{
Console.WriteLine($"Deleting file: {file}");
File.Delete(file);
await dbService.RemoveFileEntryAsync(file);
}
foreach (var folder in toBeDeletedFolders)
{
Console.WriteLine($"Deleting directory: {folder}");
Directory.Delete(folder, true);
await dbService.RemoveFolderEntryAsync(folder);
}
}
}