/// <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;
        }