/// <summary> /// Called when [install flutter]. /// </summary> private async void OnInstallFlutter() { FlutterInstalled = false; var uiContext = SynchronizationContext.Current; StatusLog.Clear(); ApplicableReports.Clear(); if (string.IsNullOrEmpty(SelectedFlutterFile)) { return; } OSFlutterInstallResult installResult = null; var cTokenSource = new CancellationTokenSource(); var taskResult = await DynamicTargetService.InstallFlutterFiles(SelectedFlutterFile, cTokenSource.Token, result => { installResult = result; if (result.Status == OSFlutterInstallFlags.StatusUpdate || result.Status == OSFlutterInstallFlags.UploadFileComplete) { uiContext.Send(x => StatusLog.Add(result.Message), null); } if (result.Status == OSFlutterInstallFlags.Success) { uiContext.Send(x => StatusLog.Add(result.Message), null); } }, exceptionResult => { if (exceptionResult.Status == OSFlutterInstallFlags.Error) { uiContext.Send(x => StatusLog.Add(exceptionResult.Message), null); Logger.Warning(installResult.ToString()); installResult = exceptionResult; } }); if (installResult.Status == OSFlutterInstallFlags.Success && installResult.Flutter != null) { if (FlutterItems.All(f => !f.Name.EqualsIgnoreCase(installResult.Flutter.Name))) { FlutterItems.Add(installResult.Flutter); } } FlutterInstalled = true; }
/// <summary> /// Called when [uninstall flutter]. /// </summary> /// <param name="flutter">The flutter.</param> private async void OnUninstallFlutter(Flutter flutter) { var uiContext = SynchronizationContext.Current; var uninstallConfirmation = MessageBox.Show(@"Are you sure you want to uninstall '" + flutter.Name + "'?" , @"Uninstall Confirmation", MessageBoxButton.YesNo); if (uninstallConfirmation == MessageBoxResult.No) { return; } UninstallInProgress = true; StatusLog.Clear(); ProgressPopupVisibility = true; var cancellationToken = new CancellationTokenSource(); var uninstallResult = await DynamicTargetService.Uninstall(flutter, cancellationToken.Token, result => { if (result.Status == OpenSourceUnInstallFlags.StatusUpdate) { StatusLog.Add(result.Message); } if (result.Status == OpenSourceUnInstallFlags.Success) { StatusLog.Add(string.Format("Uninstallation of flutter \"{0}\" completed successfully.", flutter.Name)); } }, errorCallback => { var statusMessage = string.Format("Uninstallation of flutter \"{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.", flutter.Name); uiContext.Send(x => StatusLog.Add(statusMessage), null); Logger.Write(errorCallback.Exception); //if (FlutterItems.Contains(flutter)) // FlutterItems.Remove(flutter); }); if (FlutterItems.Contains(flutter)) { FlutterItems.Remove(flutter); } UninstallInProgress = false; }