private static bool InstallLocalAddon(TaskWindow ui, Dictionary <string, object> args)
        {
            var projectPath = (string)args["projectPath"];

            ui.CustomStatusString = true;
            ui.Status             = MultiLanguage.Text.TaskInstallingLocalAddon + Path.GetFileNameWithoutExtension(projectPath);

            return(Settings.Instance.InstalledAddons.InstallAddon("", projectPath));
        }
        private void ProcessInstallRequest(bool remoteAddon, string requestString)
        {
            if (!remoteAddon)
            {
                //TODO: check for valid path

                var args = new Dictionary <string, object> {
                    { "projectPath", requestString }
                };
                var taskWindow = new TaskWindow {
                    Owner = Owner
                };

                Hide();
                taskWindow.WindowTitle = MultiLanguage.Text.TitleTaskAddonInstaller;
                taskWindow.BeginTask(new TaskWindow.TaskWindowDelegate[] { InstallLocalAddon }, args);

                if (taskWindow.Success)
                {
                    Close();
                }
                else
                {
                    Show();
                    MessageBox.Show(
                        string.Format(MultiLanguage.Text.ErrorFailedToInstallAddon,
                                      Path.GetFileNameWithoutExtension(LocalAddonTextBox.Text)),
                        MultiLanguage.Text.TitleTaskAddonInstaller,
                        MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
            }
            else
            {
                Hide();
                AddonInstaller.InstallAddonsFromRepo(requestString);
                Close();
            }
        }