private async void Download()
 {
     try
     {
         StatusText.Text = "Starting downloader...";
         DFInstall dfi = DFInstall.ParseXml(StaticMemory.Args[1]);
         if (dfi == null)
         {
             return;
         }
         Core.Xml.DarkFrontier darkfile = Core.ServerRequest.GetDarkFrontier(dfi.ServerUrl);
         if (darkfile == null)
         {
             return;
         }
         dl = new Downloader(StatusText, dfi.ProductName);
         await(StaticMemory.DownloadFile = dl.DownloadFile(darkfile.Filename, darkfile.DownloadUrl));
         if (StaticMemory.Errored)
         {
             return;
         }
         StatusText.Text = "Copying the DarkFrontier";
         File.Copy(Assembly.GetExecutingAssembly().Location, TempController.GeneratedDir.FullName + "/update.exe");
         StatusText.Text = "Executing DarkFrontier";
         MainWindow.Instance.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.None;
         Process  proc = new Process();
         DFUnpack dfu  = new DFUnpack(TempController.InstallId, darkfile.Filename, dfi.InstallPath, darkfile.DFPath);
         proc.StartInfo.Arguments = "unpack \"" + DFUnpack.ToString(dfu) + "\"";
         Debug.WriteLine("Using unpack: " + DFUnpack.ToString(dfu));
         proc.StartInfo.UseShellExecute = true;
         proc.StartInfo.FileName        = TempController.GeneratedDir.FullName + "/update.exe";
         Debug.WriteLine("Executable in " + TempController.GeneratedDir.FullName + "/update.exe");
         proc.StartInfo.Verb = "runas";
         Notify.Dispose();
         Debug.WriteLine("Process started? " + (proc.Start() ? "yes" : "no"));
         Application.Current.Shutdown(ExitCode.Unpacking);
     }
     catch (Exception e)
     {
         Debug.WriteLine("Exception: " + e.Message);
         Application.Current.Shutdown(ExitCode.InternalError);
         return;
     }
 }
        public MainTest()
        {
            DFTest dft = ParseXml(StaticMemory.Args[1]);

            if (dft == null)
            {
                return;
            }
            Core.Xml.DarkFrontier dfr = ServerRequest.GetDarkFrontier(dft.ServerUrl);
            if (dfr == null)
            {
                return;
            }
            if (Versioner.Test(dfr.Version, dft.Version))
            {
                Application.Current.Shutdown(ExitCode.Updated);
            }
            else
            {
                Application.Current.Shutdown(ExitCode.Outdated);
            }
        }