Add Git overlay, operation tools, and virtualized preview so large folders stay responsive.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
53
src/Explorer.Domain/OrganizeDestinations.cs
Normal file
53
src/Explorer.Domain/OrganizeDestinations.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
namespace Explorer.Domain;
|
||||
|
||||
public sealed record FileClassification(FileCategory Category, string Reason);
|
||||
|
||||
public sealed record OrganizePreviewRow(
|
||||
string Name,
|
||||
string Category,
|
||||
string Action,
|
||||
string? Destination,
|
||||
string? Detail);
|
||||
|
||||
public sealed class OrganizeDestinations
|
||||
{
|
||||
public string Pictures { get; set; } = "";
|
||||
public string Videos { get; set; } = "";
|
||||
public string Audio { get; set; } = "";
|
||||
public string Documents { get; set; } = "";
|
||||
public string Installers { get; set; } = "";
|
||||
public string Archives { get; set; } = "";
|
||||
public string Development { get; set; } = "";
|
||||
|
||||
public string? For(FileCategory category)
|
||||
=> category switch
|
||||
{
|
||||
FileCategory.Photos => EmptyToNull(Pictures),
|
||||
FileCategory.Video => EmptyToNull(Videos),
|
||||
FileCategory.Audio => EmptyToNull(Audio),
|
||||
FileCategory.Documents => EmptyToNull(Documents),
|
||||
FileCategory.Installer => EmptyToNull(Installers),
|
||||
FileCategory.Archive => EmptyToNull(Archives),
|
||||
FileCategory.CodeRepository => EmptyToNull(Development),
|
||||
_ => null
|
||||
};
|
||||
|
||||
public static string Label(FileCategory category)
|
||||
=> category switch
|
||||
{
|
||||
FileCategory.Photos => "Photos",
|
||||
FileCategory.Video => "Video",
|
||||
FileCategory.Audio => "Audio",
|
||||
FileCategory.Documents => "Documents",
|
||||
FileCategory.CodeRepository => "Code repository",
|
||||
FileCategory.Installer => "Installer",
|
||||
FileCategory.Backup => "Backup",
|
||||
FileCategory.Archive => "Archive",
|
||||
FileCategory.SystemData => "System data",
|
||||
FileCategory.BuildOutput => "Build output",
|
||||
_ => "Unknown"
|
||||
};
|
||||
|
||||
private static string? EmptyToNull(string value)
|
||||
=> string.IsNullOrWhiteSpace(value) ? null : value.Trim();
|
||||
}
|
||||
Reference in New Issue
Block a user