public override void Execute() { editorControl = new PackageDeploymentView(); onLogHandler = (ss, ee) => { editorControl.ReportProgress(ee.Message, 1, 10); }; var model = new NuGetPackageDeploymentViewModel { SharePointConnection = AppService.ActiveSharePointConnection, NuGetPackage = Data }; editorControl.ViewModel = model; ShFormUtilsEx.ShowModal(new ShowModalExOptions { Control = editorControl, OnControlSetup = (control) => { control.OkButton.Text = "Deploy"; control.TsEnableOkButton(AppService.ActiveSharePointConnection != null); }, OnOk = (s, e) => { e.Cancel = true; PerformPackageDeploymentAsync(e, model); } }); }
private void PerformPackageDeploymentAsync(ShModalDialogControlClosingEventArgs e, NuGetPackageDeploymentViewModel model) { TraceService.OnTrace += onLogHandler; ShAsync.DoAsync(new ShAsyncOptions { Do = () => { var count = 10; e.Control.TsEnableOkButton(false); e.Control.TsEnableCancelButton(false); try { DeployNuGetPackageInternal( model.SharePointConnection.Dto, model.NuGetPackage.Package, model.IsForceDeploy); } finally { e.Control.TsEnableOkButton(true); e.Control.TsEnableCancelButton(true); TraceService.OnTrace -= onLogHandler; } }, OnDone = () => { } }); }