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