private async void OnDoneButtonClickedAsync(object sender, EventArgs e)
        {
            IsServiceActive = true;

            try
            {
                if (AppViewModel.ServicesViewModel.UpgradableAppTiers.Any())
                {
                    await UpgradeAsync();

                    await AppViewModel
                    .ServicesViewModel
                    .SetAppUpgradingAsync(false);
                }
                else
                {
                    foreach (var version in AppViewModel.DeploymentViewModel
                             .DotnetVersions)
                    {
                        if (version.Name == SoftwareVersion.SelectedItem as string)
                        {
                            _selVersion = version;
                            break;
                        }
                    }

                    if (AppViewModel
                        .DeploymentViewModel
                        .Deployments.Any())
                    {
                        await UpdateAsync();
                    }
                    else
                    {
                        await InstallAsync();
                    }
                }

                await AppViewModel.QueryStatusAsync();

                AppView appView = await MainView.GetAppViewAsync(AppViewModel);

                if (appView != null)
                {
                    appView.UpdateStatus();
                }

                await MainView.UnstackViewAsync();
            }
            catch (Exception ex)
            {
                await ErrorHandler.ExceptionAsync(this, ex);
            }

            IsServiceActive = false;
        }
示例#2
0
        public async Task <ResultMultiple <SoftwareFramework.Version> > QuerySoftwareFrameworkVersionsAsync(
            bool doCache = true, bool throwIfError = true)
        {
            SoftwareFramework frameworkSeed = new SoftwareFramework();

            frameworkSeed.Tag = "aspdotnetcore";
            SoftwareFramework.Version versionSeed = new SoftwareFramework.Version();
            versionSeed.OwnedBy = frameworkSeed;

            ResultMultiple <SoftwareFramework.Version> result = await ResultMultipleUI <SoftwareFramework.Version> .WaitForObjectsAsync(
                true, versionSeed, new CachedHttpRequest <SoftwareFramework.Version, ResultMultiple <SoftwareFramework.Version> >(
                    Backend.QueryAsyncListAsync), true);

            if (result.Code >= 0)
            {
                _dotnetVersions = result.Data.Payload;
            }

            return(result);
        }