/// <summary> /// Installs the wing progress. /// </summary> /// <param name="progressResult">The progress result.</param> public void InstallWingProgress(OpenSourceInstallResult progressResult) { switch (progressResult.Status) { case OpenSourceInstallFlags.AlreadyExists: StatusLog.Add(progressResult.Message); if (progressResult.Target != null && WingItems != null && !WingItems.Any(item => item != null && !string.IsNullOrEmpty(item.Name) && item.Name.EqualsIgnoreCase(progressResult.Target.Name))) { WingItems.Add(progressResult.Target); } break; case OpenSourceInstallFlags.StatusUpdate: StatusLog.Add(progressResult.Message); break; case OpenSourceInstallFlags.Success: StatusLog.Add(progressResult.Message); if (progressResult.Target != null && !WingItems.Any(wi => wi.Name.EqualsIgnoreCase(progressResult.Target.Name))) { WingItems.Add(progressResult.Target); } break; } }
/// <summary> /// Called when [uninstall wing]. /// </summary> /// <param name="dynamicTarget">The dynamic target.</param> private async void OnUninstallWing(Target dynamicTarget) { if (dynamicTarget == null) { return; } var uninstallConfirmation = MessageBox.Show(@"Are you sure you want to uninstall '" + dynamicTarget.DisplayName + "'?" + Environment.NewLine + "The Website(s) using this Wing will be deleted." , @"Uninstall Confirmation", MessageBoxButton.YesNo); if (uninstallConfirmation == MessageBoxResult.No) { return; } UninstallInProgress = true; StatusLog.Clear(); ProgressPopupVisibility = true; await Task.Delay(500); UnistallWingName = dynamicTarget.DisplayName; var cancellationToken = new CancellationTokenSource(); var uninstallResult = await DynamicTargetService.Uninstall(dynamicTarget, cancellationToken.Token, result => { if (result.Status == OpenSourceUnInstallFlags.StatusUpdate) { StatusLog.Add(result.Message); } if (result.Status == OpenSourceUnInstallFlags.Success) { StatusLog.Add(string.Format("Uninstallation of wing \"{0}\" completed successfully.", dynamicTarget.Name)); if (WingItems.Contains(dynamicTarget)) { WingItems.Remove(dynamicTarget); } } }, exceptionResult => { var statusMessage = string.Format("Uninstallation of wing \"{0}\" was unsuccessful. Please try again. If for any reason the" + "the error still remains after trying to uninstall again. Please contact Monahrq technical assistance.", dynamicTarget.Name); StatusLog.Add(statusMessage); Logger.Write(exceptionResult.Exception); }); UninstallInProgress = false; }