コード例 #1
0
        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;
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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
            });
        }