From dfce85371d307bb885ebd9fb80ffdfd791d371c1 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Wed, 29 Jan 2025 23:02:59 -0600 Subject: [PATCH] Add ByteSize component --- .../UI/Components/CurrentDownloadItem.razor | 4 +-- .../UI/Components/DownloadQueue.razor | 2 +- .../UI/Components/InstallDialog.razor | 4 +-- .../UI/Components/SavesDialog.razor | 2 +- .../UI/Components/ValidateFilesDialog.razor | 4 +-- LANCommander.SDK/FileTransferMonitor.cs | 2 +- LANCommander.SDK/Services/GameService.cs | 4 +-- .../UI/Components/ArchiveEditor.razor | 4 +-- .../FileManagerComponents/FileManager.razor | 2 +- .../UI/Pages/Games/Edit/Saves.razor | 2 +- .../UI/Pages/Profile/Saves.razor | 2 +- .../UI/Pages/Settings/Tools/Index.razor | 30 +++++++++++++------ .../Pages/Settings/Tools/OrphanedFiles.razor | 2 +- .../UI/Pages/Settings/Users/Index.razor | 2 +- LANCommander.UI/Components/ByteSize.razor | 5 ++++ .../Components/ChunkUploader.razor | 2 +- 16 files changed, 45 insertions(+), 28 deletions(-) create mode 100644 LANCommander.UI/Components/ByteSize.razor diff --git a/LANCommander.Launcher/UI/Components/CurrentDownloadItem.razor b/LANCommander.Launcher/UI/Components/CurrentDownloadItem.razor index 8a181390..745b11bc 100644 --- a/LANCommander.Launcher/UI/Components/CurrentDownloadItem.razor +++ b/LANCommander.Launcher/UI/Components/CurrentDownloadItem.razor @@ -38,10 +38,10 @@
- @ByteSizeLib.ByteSize.FromBytes(Progress.BytesDownloaded).ToString() / @ByteSizeLib.ByteSize.FromBytes(Progress.TotalBytes).ToString() + /
- @ByteSizeLib.ByteSize.FromBytes(Progress.TransferSpeed).ToString()/s + /s
diff --git a/LANCommander.Launcher/UI/Components/DownloadQueue.razor b/LANCommander.Launcher/UI/Components/DownloadQueue.razor index 2ba58c9f..cb049a24 100644 --- a/LANCommander.Launcher/UI/Components/DownloadQueue.razor +++ b/LANCommander.Launcher/UI/Components/DownloadQueue.razor @@ -54,7 +54,7 @@

@queueItem.Title

- @ByteSizeLib.ByteSize.FromBytes(queueItem.TotalBytes) +
diff --git a/LANCommander.Launcher/UI/Components/InstallDialog.razor b/LANCommander.Launcher/UI/Components/InstallDialog.razor index 037b4ad1..a7542614 100644 --- a/LANCommander.Launcher/UI/Components/InstallDialog.razor +++ b/LANCommander.Launcher/UI/Components/InstallDialog.razor @@ -8,7 +8,7 @@
- + @@ -35,7 +35,7 @@ @directory - @ByteSizeLib.ByteSize.FromBytes(GetFreeSpace(directory)) + diff --git a/LANCommander.Launcher/UI/Components/SavesDialog.razor b/LANCommander.Launcher/UI/Components/SavesDialog.razor index 3ca428da..6d21168a 100644 --- a/LANCommander.Launcher/UI/Components/SavesDialog.razor +++ b/LANCommander.Launcher/UI/Components/SavesDialog.razor @@ -7,7 +7,7 @@ - @ByteSizeLib.ByteSize.FromBytes(context.Size) + diff --git a/LANCommander.Launcher/UI/Components/ValidateFilesDialog.razor b/LANCommander.Launcher/UI/Components/ValidateFilesDialog.razor index 16bbd2d3..98ad8d5b 100644 --- a/LANCommander.Launcher/UI/Components/ValidateFilesDialog.razor +++ b/LANCommander.Launcher/UI/Components/ValidateFilesDialog.razor @@ -17,13 +17,13 @@ @if (context.LocalFileInfo?.Length > 0) { - @ByteSizeLib.ByteSize.FromBytes(context.LocalFileInfo.Length) + } @if (context.Length > 0) { - @ByteSizeLib.ByteSize.FromBytes(context.Length) + }
diff --git a/LANCommander.SDK/FileTransferMonitor.cs b/LANCommander.SDK/FileTransferMonitor.cs index 006f1aea..a1407883 100644 --- a/LANCommander.SDK/FileTransferMonitor.cs +++ b/LANCommander.SDK/FileTransferMonitor.cs @@ -43,7 +43,7 @@ public class FileTransferMonitor : IDisposable } public long GetBytesTransferred() => _lastBytesTransferred; - public double GetSpeed() => _smoothedTransferRate; + public long GetSpeed() => (long)_smoothedTransferRate; public TimeSpan GetTimeRemaining() { diff --git a/LANCommander.SDK/Services/GameService.cs b/LANCommander.SDK/Services/GameService.cs index 6c9ee256..9670c6e1 100644 --- a/LANCommander.SDK/Services/GameService.cs +++ b/LANCommander.SDK/Services/GameService.cs @@ -35,7 +35,7 @@ namespace LANCommander.SDK.Services } set { } } - public double TransferSpeed { get; set; } + public long TransferSpeed { get; set; } public long BytesDownloaded { get; set; } public long TotalBytes { get; set; } public TimeSpan TimeRemaining { get; set; } @@ -763,7 +763,7 @@ namespace LANCommander.SDK.Services GameInstallProgress.BytesDownloaded = pos; GameInstallProgress.TotalBytes = len; - GameInstallProgress.TransferSpeed = (double)(bytesThisInterval / (stopwatch.ElapsedMilliseconds / 1000d)); + GameInstallProgress.TransferSpeed = (long)(bytesThisInterval / (stopwatch.ElapsedMilliseconds / 1000d)); OnGameInstallProgressUpdate?.Invoke(GameInstallProgress); diff --git a/LANCommander.Server/UI/Components/ArchiveEditor.razor b/LANCommander.Server/UI/Components/ArchiveEditor.razor index 8ab8cf45..c51170de 100644 --- a/LANCommander.Server/UI/Components/ArchiveEditor.razor +++ b/LANCommander.Server/UI/Components/ArchiveEditor.razor @@ -26,10 +26,10 @@ - @ByteSizeLib.ByteSize.FromBytes(context.CompressedSize) + - @ByteSizeLib.ByteSize.FromBytes(context.UncompressedSize) + diff --git a/LANCommander.Server/UI/Components/FileManagerComponents/FileManager.razor b/LANCommander.Server/UI/Components/FileManagerComponents/FileManager.razor index 2d68e36c..b03ea457 100644 --- a/LANCommander.Server/UI/Components/FileManagerComponents/FileManager.razor +++ b/LANCommander.Server/UI/Components/FileManagerComponents/FileManager.razor @@ -129,7 +129,7 @@ @FileSource.GetEntryName(context) - @ByteSizeLib.ByteSize.FromBytes(context.Size) + diff --git a/LANCommander.Server/UI/Pages/Games/Edit/Saves.razor b/LANCommander.Server/UI/Pages/Games/Edit/Saves.razor index cbaa434e..cd4a05af 100644 --- a/LANCommander.Server/UI/Pages/Games/Edit/Saves.razor +++ b/LANCommander.Server/UI/Pages/Games/Edit/Saves.razor @@ -15,7 +15,7 @@ - @ByteSizeLib.ByteSize.FromBytes(save.Size) + diff --git a/LANCommander.Server/UI/Pages/Profile/Saves.razor b/LANCommander.Server/UI/Pages/Profile/Saves.razor index 1afe491c..3b58da4c 100644 --- a/LANCommander.Server/UI/Pages/Profile/Saves.razor +++ b/LANCommander.Server/UI/Pages/Profile/Saves.razor @@ -39,7 +39,7 @@ - @ByteSizeLib.ByteSize.FromBytes(context.Size) + diff --git a/LANCommander.Server/UI/Pages/Settings/Tools/Index.razor b/LANCommander.Server/UI/Pages/Settings/Tools/Index.razor index bef866e8..a8a7397c 100644 --- a/LANCommander.Server/UI/Pages/Settings/Tools/Index.razor +++ b/LANCommander.Server/UI/Pages/Settings/Tools/Index.razor @@ -5,6 +5,7 @@ @inject UpdateService UpdateService @inject IMessageService MessageService @inject IFusionCache FusionCache +@inject ILogger Logger @attribute [Authorize(Roles = RoleService.AdministratorRoleName)] @@ -64,23 +65,31 @@ async Task RecalculateFileSizes() { RecalculatingFileSizes = true; - + + await Task.Yield(); await InvokeAsync(StateHasChanged); using (var archiveService = DatabaseServiceFactory.Create()) { - var archives = await archiveService.GetAsync(); + var archives = await archiveService.AsNoTracking().GetAsync(); foreach (var archive in archives) { - var path = await archiveService.GetArchiveFileLocationAsync(archive); - - if (File.Exists(path)) + try { - archive.CompressedSize = await archiveService.GetCompressedSizeAsync(archive); - archive.UncompressedSize = await archiveService.GetUncompressedSizeAsync(archive); + var path = await archiveService.GetArchiveFileLocationAsync(archive); - await archiveService.UpdateAsync(archive); + if (File.Exists(path)) + { + archive.CompressedSize = await archiveService.GetCompressedSizeAsync(archive); + archive.UncompressedSize = await archiveService.GetUncompressedSizeAsync(archive); + + await archiveService.UpdateAsync(archive); + } + } + catch (Exception ex) + { + Logger?.LogError(ex, "Could not recalculate file size for archive {ArchiveId}", archive.Id); } } } @@ -88,11 +97,14 @@ MessageService.Success("File sizes recalculated!"); RecalculatingFileSizes = false; + + await Task.Yield(); + await InvokeAsync(StateHasChanged); } async Task ClearCache() { - await FusionCache.ExpireAsync("MappedGames"); + await FusionCache.ExpireAsync("Games"); MessageService.Success("Cache cleared!"); } diff --git a/LANCommander.Server/UI/Pages/Settings/Tools/OrphanedFiles.razor b/LANCommander.Server/UI/Pages/Settings/Tools/OrphanedFiles.razor index ff654eee..b88f2cb5 100644 --- a/LANCommander.Server/UI/Pages/Settings/Tools/OrphanedFiles.razor +++ b/LANCommander.Server/UI/Pages/Settings/Tools/OrphanedFiles.razor @@ -21,7 +21,7 @@ - @ByteSizeLib.ByteSize.FromBytes(context.Size).ToString() + diff --git a/LANCommander.Server/UI/Pages/Settings/Users/Index.razor b/LANCommander.Server/UI/Pages/Settings/Users/Index.razor index 05aadc6c..18178b89 100644 --- a/LANCommander.Server/UI/Pages/Settings/Users/Index.razor +++ b/LANCommander.Server/UI/Pages/Settings/Users/Index.razor @@ -15,7 +15,7 @@ @String.Join(", ", context.Roles) - @ByteSizeLib.ByteSize.FromBytes(context.SavesSize) + diff --git a/LANCommander.UI/Components/ByteSize.razor b/LANCommander.UI/Components/ByteSize.razor new file mode 100644 index 00000000..6098c5b0 --- /dev/null +++ b/LANCommander.UI/Components/ByteSize.razor @@ -0,0 +1,5 @@ +@ByteSizeLib.ByteSize.FromBytes(Value).ToString() + +@code { + [Parameter] public long Value { get; set; } +} \ No newline at end of file diff --git a/LANCommander.UI/Components/ChunkUploader.razor b/LANCommander.UI/Components/ChunkUploader.razor index becb6287..e57f5222 100644 --- a/LANCommander.UI/Components/ChunkUploader.razor +++ b/LANCommander.UI/Components/ChunkUploader.razor @@ -39,7 +39,7 @@ - @File.Name (@ByteSizeLib.ByteSize.FromBytes(File.Size)) + @File.Name ()