diff --git a/Azaion.LoaderUI/ApiCredentials.cs b/Azaion.LoaderUI/ApiCredentials.cs index eeee5f0..13b61f4 100644 --- a/Azaion.LoaderUI/ApiCredentials.cs +++ b/Azaion.LoaderUI/ApiCredentials.cs @@ -10,7 +10,4 @@ public class ApiCredentials [Key(nameof(Password))] public string Password { get; set; } = null!; - - public bool IsValid() => - !string.IsNullOrWhiteSpace(Email) && !string.IsNullOrWhiteSpace(Password); } \ No newline at end of file diff --git a/Azaion.LoaderUI/Login.xaml.cs b/Azaion.LoaderUI/Login.xaml.cs index 14e18a4..dfb0539 100644 --- a/Azaion.LoaderUI/Login.xaml.cs +++ b/Azaion.LoaderUI/Login.xaml.cs @@ -1,6 +1,7 @@ using System.Diagnostics; using System.IO; using System.Text; +using System.Text.RegularExpressions; using System.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -44,14 +45,35 @@ public partial class Login Email = TbEmail.Text, Password = TbPassword.Password }; - if (!creds.IsValid()) + if (string.IsNullOrWhiteSpace(creds.Email) || string.IsNullOrWhiteSpace(creds.Password)) return; - - SetControlsStatus(isLoading: true); - _azaionApi.Login(creds); + try { + SetControlsStatus(isLoading: true); + _azaionApi.Login(creds); Validate(creds); + + TbStatus.Foreground = Brushes.Black; + var installerVersion = await GetInstallerVer(); + var localVersion = GetLocalVer(); + + if (installerVersion > localVersion) + { + TbStatus.Text = $"Updating from {localVersion} to {installerVersion}..."; + await DownloadAndRunInstaller(); + TbStatus.Text = $"Installed {installerVersion}!"; + } + else + TbStatus.Text = "Your version is up to date!"; + + Process.Start(Constants.AZAION_SUITE_EXE, $"-e {creds.Email} -p {creds.Password}"); + await Task.Delay(800); + TbStatus.Text = "Loading..."; + while (!Process.GetProcessesByName(Constants.INFERENCE_EXE).Any()) + await Task.Delay(500); + await Task.Delay(1500); + Close(); } catch (Exception exception) { @@ -59,28 +81,7 @@ public partial class Login TbStatus.Foreground = Brushes.Red; TbStatus.Text = exception.Message; SetControlsStatus(isLoading: false); - return; } - TbStatus.Foreground = Brushes.Black; - var installerVersion = await GetInstallerVer(); - var localVersion = GetLocalVer(); - - if (installerVersion > localVersion) - { - TbStatus.Text = $"Updating from {localVersion} to {installerVersion}..."; - await DownloadAndRunInstaller(); - TbStatus.Text = $"Installed {installerVersion}!"; - } - else - TbStatus.Text = "Your version is up to date!"; - - Process.Start(Constants.AZAION_SUITE_EXE, $"-e {creds.Email} -p {creds.Password}"); - await Task.Delay(800); - TbStatus.Text = "Loading..."; - while (!Process.GetProcessesByName(Constants.INFERENCE_EXE).Any()) - await Task.Delay(500); - await Task.Delay(1500); - Close(); } private void Validate(ApiCredentials creds) @@ -172,10 +173,10 @@ public partial class Login ? Constants.SUITE_FOLDER : _dirConfig.SuiteInstallerDirectory; var installerName = await _azaionApi.GetLastInstallerName(installerDir); - var version = installerName - .Replace("AzaionSuite.Iterative.", "") - .Replace(".exe", ""); - return new Version(version); + var match = Regex.Match(installerName, @"\d+(\.\d+)+"); + if (!match.Success) + throw new Exception($"Can't find version in {installerName}"); + return new Version(match.Value); } private Version GetLocalVer()