public async Task Start(string tenant) { var apps = AppDiscovery.Discover().ToList(); foreach (var app in apps) { try { string message = await Updater.UpdateAsync(tenant, app).ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(message)) { this.Notify(message); } } catch (Exception ex) { string message = $"Error: Could not install updates for application \"{app.ApplicationName}\" on tenant {tenant} due to errors."; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(message); Console.ForegroundColor = ConsoleColor.White; this.Notify(message); Log.Error("Error: Could not install updates for application \"{ApplicationName}\" on tenant {tenant} due to errors. Exception: {Exception}", app.ApplicationName, tenant, ex); throw; } } Console.ForegroundColor = ConsoleColor.Green; this.Notify("OK"); Console.ForegroundColor = ConsoleColor.White; }
public async Task RegisterAsync() { await Task.Delay(0).ConfigureAwait(false); var tenants = TenantConvention.GetTenants(); var apps = AppDiscovery.Discover().ToList(); //Improving application startup time by loading this task on the background. new Thread(async() => { Thread.CurrentThread.IsBackground = true; foreach (string tenant in tenants) { foreach (var app in apps) { var updater = new Updater(tenant, app); try { await updater.UpdateAsync().ConfigureAwait(true); } catch (Exception ex) { Log.Error("Could not install updates for application \"{ApplicationName}\" on tenant {tenant} due to errors. Exception: {Exception}", updater.App.ApplicationName, tenant, ex); throw; } } } }).Start(); }
public static HomeViewModel GetViewModel(string tenant) { var updatables = AppDiscovery.GetUpdatables(tenant).ToList(); var lastInstalledOn = updatables.Max(x => x.InstalledVersions.Max(y => y.LastInstalledOn)); return(new HomeViewModel { Updatables = updatables, LastInstalledOn = lastInstalledOn }); }