private void Unpack()
 {
     try
     {
         StatusText.Text = "Starting unpacker...";
         StatusText.Text = "Unpacking...";
         DFUnpack      dfu = StaticMemory.DFU;
         DirectoryInfo dir = Directory.CreateDirectory(TempController.GeneratedDir.FullName + "/update");
         ZipFile.ExtractToDirectory(TempController.GeneratedDir.FullName + "/" + dfu.Filename, dir.FullName);
         StatusText.Text = "Deleting old version...";
         if (Directory.Exists(dfu.InstallPath))
         {
             TempController.DestroyDirectory(dfu.InstallPath);
             Directory.Delete(dfu.InstallPath);
         }
         StatusText.Text = "Moving files...";
         Directory.Move(dir.FullName, dfu.InstallPath);
         StatusText.Text = "Finalizing update...";
         Application.Current.Shutdown(ExitCode.Success);
     } catch (Exception e)
     {
         Debug.WriteLine("Exception: " + e.Message);
         Application.Current.Shutdown(ExitCode.InternalError);
         return;
     }
 }