From a15d187550d9bf666d6953cb406ed5c19a512174 Mon Sep 17 00:00:00 2001 From: Cinka Date: Sat, 24 Jan 2026 00:10:58 +0300 Subject: [PATCH] - fix: update resolver dotnet resolving --- Nebula.UpdateResolver/DotnetStandalone.cs | 2 +- Nebula.UpdateResolver/MainWindow.axaml.cs | 22 ++++++++++++++-------- Nebula.UpdateResolver/Rest/Helper.cs | 10 +++++++++- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Nebula.UpdateResolver/DotnetStandalone.cs b/Nebula.UpdateResolver/DotnetStandalone.cs index e803913..6eccadb 100644 --- a/Nebula.UpdateResolver/DotnetStandalone.cs +++ b/Nebula.UpdateResolver/DotnetStandalone.cs @@ -42,7 +42,7 @@ public static class DotnetStandalone private static async Task EnsureDotnet(LauncherRuntimeInfo runtimeInfo) { - if (!Directory.Exists(GetExecutePath(runtimeInfo))) + if (!File.Exists(GetExecutePath(runtimeInfo))) await Download(runtimeInfo); } diff --git a/Nebula.UpdateResolver/MainWindow.axaml.cs b/Nebula.UpdateResolver/MainWindow.axaml.cs index 3620a4f..d8fdd18 100644 --- a/Nebula.UpdateResolver/MainWindow.axaml.cs +++ b/Nebula.UpdateResolver/MainWindow.axaml.cs @@ -6,6 +6,7 @@ using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Avalonia.Controls; +using Avalonia.Threading; using Nebula.SharedModels; using Nebula.UpdateResolver.Configuration; using Nebula.UpdateResolver.Rest; @@ -26,20 +27,25 @@ public partial class MainWindow : Window InitializeComponent(); LogStandalone.OnLog += (message, percentage) => { - ProgressLabel.Content = message; - if (percentage == 0) - PercentLabel.Content = ""; - else - PercentLabel.Content = percentage + "%"; - + var percentText = ""; + if (percentage != 0) + percentText = $"{percentage}%"; + + Dispatcher.UIThread.Invoke(() => + { + ProgressLabel.Content = message; + PercentLabel.Content = percentText; + }); + var messageOut = - $"[{DateTime.Now.ToUniversalTime():yyyy-MM-dd HH:mm:ss}]: {message} {PercentLabel.Content}"; + $"[{DateTime.Now.ToUniversalTime():yyyy-MM-dd HH:mm:ss}]: {message} {percentText}"; Console.WriteLine(messageOut); _logStr += messageOut + "\n"; }; + LogStandalone.Log("Starting up"); if (!Design.IsDesignMode) - _ = Start(); + Task.Run(Start); else LogStandalone.Log("Debug information", 51); } diff --git a/Nebula.UpdateResolver/Rest/Helper.cs b/Nebula.UpdateResolver/Rest/Helper.cs index f619a43..73a0800 100644 --- a/Nebula.UpdateResolver/Rest/Helper.cs +++ b/Nebula.UpdateResolver/Rest/Helper.cs @@ -20,13 +20,21 @@ public static class Helper const int bufferSize = 81920; var buffer = new byte[bufferSize]; + int skipStep = 0; long totalRead = 0; int bytesRead; while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, bytesRead); totalRead += bytesRead; - LogStandalone.Log($"Saving {fileName}", (int)(((float)totalLength / totalRead) * 100)); + + skipStep++; + + if(skipStep < 50) continue; + + skipStep = 0; + + LogStandalone.Log($"Saving {fileName}", (int)((totalRead / (float)totalLength) * 100)); } } } \ No newline at end of file