private void BWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            InstallMeta _installmeta = e.Argument as InstallMeta;

            if (_installmeta != null)
            {
                JObject jo = JObject.Parse(_installmeta.Result);
                PSO2ProxyConfigurationJsonObject pso2proxyjo     = jo.ToObject <PSO2ProxyConfigurationJsonObject>();
                PSO2ProxyConfiguration           pso2proxyConfig = pso2proxyjo.ToPSO2ProxyConfiguration();
                IPSO2Proxy installer = pso2proxyConfig.Version as IPSO2Proxy;
                if (installer != null)
                {
                    installer.Install(pso2proxyConfig);
                }
                MySettings.ProxyJSONURL = _installmeta.ProxyURL;
                e.Result = pso2proxyConfig;
            }
            else
            {
                UninstallMeta _uninstallmeta = e.Argument as UninstallMeta;
                if (_uninstallmeta != null)
                {
                    Versions.PSO2Proxy.GeneralUninstall();
                    MySettings.ProxyJSONURL = null;
                    e.Result = _uninstallmeta;
                }
            }
        }
 private void BWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     this._isBusy = false;
     if (e.Error != null)
     {
         this.OnHandledException(new HandledExceptionEventArgs(e.Error));
     }
     else
     {
         if (e.Result is UninstallMeta)
         {
             this.OnProxyUninstalled(new ProxyUninstalledEventArgs());
         }
         else
         {
             PSO2ProxyConfiguration resultConfig = e.Result as PSO2ProxyConfiguration;
             if (resultConfig != null)
             {
                 this.OnProxyInstalled(new ProxyInstalledEventArgs(resultConfig));
             }
         }
     }
 }
 public void Install(PSO2ProxyConfiguration config)
 {
     throw new NotImplementedException(LanguageManager.GetMessageText("PSO2Proxy_UnknownVersionInstall", "This proxy version is not supported"));
 }