diff --git a/SharepointToolbox/Core/Models/FileTypeMetric.cs b/SharepointToolbox/Core/Models/FileTypeMetric.cs new file mode 100644 index 0000000..f23e625 --- /dev/null +++ b/SharepointToolbox/Core/Models/FileTypeMetric.cs @@ -0,0 +1,21 @@ +namespace SharepointToolbox.Core.Models; + +/// +/// Represents storage consumption for a single file extension across all scanned libraries. +/// Produced by IStorageService.CollectFileTypeMetricsAsync and consumed by chart bindings. +/// +public record FileTypeMetric( + /// File extension including dot, e.g. ".docx", ".pdf". Empty string for extensionless files. + string Extension, + /// Total size in bytes of all files with this extension. + long TotalSizeBytes, + /// Number of files with this extension. + int FileCount) +{ + /// + /// Human-friendly display label: ".docx" becomes "DOCX", empty becomes "No Extension". + /// + public string DisplayLabel => string.IsNullOrEmpty(Extension) + ? "No Extension" + : Extension.TrimStart('.').ToUpperInvariant(); +} diff --git a/SharepointToolbox/SharepointToolbox.csproj b/SharepointToolbox/SharepointToolbox.csproj index c5449dd..01ff1f3 100644 --- a/SharepointToolbox/SharepointToolbox.csproj +++ b/SharepointToolbox/SharepointToolbox.csproj @@ -40,6 +40,7 @@ +