/// <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> /// Fakes the status. /// </summary> private void FakeStatus() { for (int i = 0; i < 50; i++) { StatusLog.Add(i + " aasdfasdfasdfasdfasdfasdfasdfasdfasd fasdfasdfasdfasdfasdfsadfasd dfasdfasd fasdfasdfasdfasdfasdfsadfasd"); Task.Delay(100); StatusLog.Add(i + " zxcvzxcvzxcv zxcv zxcvz zxcv zxcv zxcvxz xzcv zxcv zxcv zxcv zxcv xcz"); Task.Delay(100); StatusLog.Add(i + " qwerqwerwerq qwer qwer qwerwerwqerqwerq qwer qwerqwerwerqwreqw "); } }
/// <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; }
/// <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; }
/// <summary> /// Store a message to be logged to the screen when the page renders. /// </summary> /// <param name="message">The message to log.</param> public static void LogMessageToPage(string message) { StatusLog.Add(String.Format("[<i>{0:MM/dd/yy H:mm:ss.ff}</i>] {1}", DateTime.Now, message)); }
/// <summary> /// Called when [install wing]. /// </summary> private async void OnInstallWing() { WingInstalled = false; StatusLog.Clear(); if (string.IsNullOrEmpty(SelectedWingFile)) { return; } await Task.Run(() => StatusLog.Add("Copying files to Wing directory. Please, stand by. It may take a few seconds.")); await Task.Delay(100); var targetsToInstall = await Task.Run(() => DynamicTargetService.CopyTargetFilesToDirectory(SelectedWingFile).ToList()); using (var session = Provider.SessionFactory.OpenSession()) { var wing = session.Query <Wing>().FirstOrDefault(w => w.WingGUID == new Guid(DynamicTargetWingConstants.WING_MODULE_GUID)); if (wing == null) { throw new NotSupportedException("Dynamic wings module is not installed. XML Wings cannot be installed."); } foreach (var dynamicTarget in targetsToInstall) { StatusLog.Add(string.Format("Starting installation of wing \"{0}\".", dynamicTarget.Name)); #region "Asynchronous Aproach" var result = await DynamicTargetService.InstallDynamicTargetAsync(dynamicTarget, wing, session, DynamicTargetService.Context.Value, InstallWingProgress); if (!result) { StatusLog.Add($"An error occurred while trying to install wing \"{dynamicTarget.Name}\". Please try again and if the error persists, please contact technical assistance for help."); } #endregion #region synchronous install //var result = DynamicTargetService.InstallDynamicTarget(dynamicTarget, wing, session); //switch (result.Status) //{ // case OpenSourceInstallFlags.AlreadyExists: // uiContext.Send(x => StatusLog.Add(string.Format("Wing \"{0}\" has already been installed.", dynamicTarget.Name)), null); // continue; // case OpenSourceInstallFlags.Error: // // TODO: Add message for user. // uiContext.Send(x => StatusLog.Add(string.Format("An error occurred while trying to install wing \"{0}\". Please try again and if the error persists, please contact technical assistance for help.", dynamicTarget.Name)), null); // Logger.Write(result); // break; // case OpenSourceInstallFlags.Success: // uiContext.Send(x => StatusLog.Add( // string.Format( // "Start installation of associated measures, reports, wing dataset target tables for wing \"{0}\".", // dynamicTarget.Name)), null); // target = result.Target; // if (target != null) // { // // Thread.Sleep(500); // uiContext.Send( // x => // StatusLog.Add(string.Format("Start importing measures for wing \"{0}\".", // dynamicTarget.Name)), null); // DynamicTargetService.ImportMeasures(target, dynamicTarget, session); // uiContext.Send( // x => // StatusLog.Add(string.Format("End importing measures for wing \"{0}\".", // dynamicTarget.Name)), null); // // Thread.Sleep(500); // uiContext.Send( // x => // StatusLog.Add(string.Format("Start importing reports for wing \"{0}\".", // dynamicTarget.Name)), null); // DynamicTargetService.ImportReports(dynamicTarget, session); // uiContext.Send( // x => // StatusLog.Add(string.Format("End importing reports for wing \"{0}\".", // dynamicTarget.Name)), null); // uiContext.Send( // x => // StatusLog.Add(string.Format("Finalizing installation for wing \"{0}\".", // dynamicTarget.Name)), null); // // Thread.Sleep(1000); // uiContext.Send( // x => // StatusLog.Add( // string.Format("Installation for wing \"{0}\" successfully completed.", // dynamicTarget.Name)), null); // if (target != null && !WingItems.Any(item => item.Name.EqualsIgnoreCase(target.Name))) // WingItems.Add(target); // } // break; //} #endregion } } WingInstalled = true; }