waffle.lord
85a562079c
also deletes log file and doens't log anything at the message viewmodel so the log isn't in the live directory
82 lines
2.2 KiB
C#
82 lines
2.2 KiB
C#
using Avalonia;
|
|
using ReactiveUI;
|
|
using Serilog;
|
|
using SPTInstaller.CustomControls;
|
|
using SPTInstaller.Helpers;
|
|
using SPTInstaller.Interfaces;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace SPTInstaller.ViewModels;
|
|
|
|
public class MessageViewModel : ViewModelBase
|
|
{
|
|
private bool _HasErrors;
|
|
public bool HasErrors
|
|
{
|
|
get => _HasErrors;
|
|
set => this.RaiseAndSetIfChanged(ref _HasErrors, value);
|
|
}
|
|
|
|
private string _Message;
|
|
public string Message
|
|
{
|
|
get => _Message;
|
|
set => this.RaiseAndSetIfChanged(ref _Message, value);
|
|
}
|
|
|
|
private bool _showCloseButton;
|
|
public bool ShowCloseButton
|
|
{
|
|
get => _showCloseButton;
|
|
set => this.RaiseAndSetIfChanged(ref _showCloseButton, value);
|
|
}
|
|
|
|
private string _cacheInfoText;
|
|
public string CacheInfoText
|
|
{
|
|
get => _cacheInfoText;
|
|
set => this.RaiseAndSetIfChanged(ref _cacheInfoText, value);
|
|
}
|
|
|
|
private StatusSpinner.SpinnerState _cacheCheckState;
|
|
public StatusSpinner.SpinnerState CacheCheckState
|
|
{
|
|
get => _cacheCheckState;
|
|
set => this.RaiseAndSetIfChanged(ref _cacheCheckState, value);
|
|
}
|
|
|
|
public ICommand CloseCommand { get; set; } = ReactiveCommand.Create(() =>
|
|
{
|
|
if (Application.Current.ApplicationLifetime is Avalonia.Controls.ApplicationLifetimes.IClassicDesktopStyleApplicationLifetime desktopApp)
|
|
{
|
|
desktopApp.MainWindow.Close();
|
|
}
|
|
});
|
|
|
|
public MessageViewModel(IScreen Host, IResult result, bool showCloseButton = true, bool noLog = false) : base(Host)
|
|
{
|
|
ShowCloseButton = showCloseButton;
|
|
Message = result.Message;
|
|
|
|
Task.Run(() =>
|
|
{
|
|
CacheInfoText = "Getting cache size ...";
|
|
CacheCheckState = StatusSpinner.SpinnerState.Running;
|
|
|
|
CacheInfoText = $"Cache Size: {DownloadCacheHelper.GetCacheSizeText()}";
|
|
CacheCheckState = StatusSpinner.SpinnerState.OK;
|
|
});
|
|
|
|
if (result.Succeeded)
|
|
{
|
|
Log.Information(Message);
|
|
return;
|
|
}
|
|
|
|
HasErrors = true;
|
|
|
|
if (!noLog)
|
|
Log.Error(Message);
|
|
}
|
|
} |