示例#1
0
 public void installSet(Windows.ChangeSetsProgressDialog wnd, int max, Octgn.Data.Game game)
 {
     wnd.UpdateProgress(0, max, "Retrieving xml...", false);
     XmlSetParser xmls = xml_set;
     wnd.UpdateProgress(1, max, "Parsing retrieved xml...", false);
     xmls.check();
     bool is_spoiler_installed = true;
     Data.Set set = null;
     string path = Path.Combine(Prefs.DataDirectory, "Games", game.Id.ToString(), "Sets");
     string downloadto = Path.Combine(path) + xmls.name() + ".o8s";
     var cli = new WebClient();
     wnd.UpdateProgress(2, max, "Downloading new definition...", false);
     cli.Credentials = new System.Net.NetworkCredential(xmls.user(), xmls.password());
     cli.DownloadFile(xmls.link(), downloadto);
     wnd.UpdateProgress(3, max, "Checking for existence of old definition...", false);
     try
     {
         set = game.Sets.First<Data.Set>(_set => _set.Id.ToString() == xmls.uuid());
     }
     catch
     {
         is_spoiler_installed = false;
     }
     if (is_spoiler_installed)
     {
         wnd.UpdateProgress(4, max, "Removing old definition...", false);
         game.DeleteSet(set);
     }
     wnd.UpdateProgress(5, max, "Installing new definition...", false);
     game.InstallSet(downloadto);
     wnd.UpdateProgress(6, max, "Set installed correctly", false);
 }
示例#2
0
        private void InstallSet(string fname, Octgn.Data.Game SelectedGame)
        {
            string shortName = Path.GetFileName(fname);
            UpdateStatus("Installing Set " + shortName);
            string path = Path.Combine(Prefs.DataDirectory, "Games", SelectedGame.Id.ToString(), "Sets");
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);

            try
            {
                if (shortName != null)
                {
                    string copyto = Path.Combine(path, shortName);
                    if (fname.ToLower() != copyto.ToLower())
                        File.Copy(fname, copyto, true);
                    SelectedGame.InstallSet(copyto);
                }
                UpdateStatus(string.Format("Set '{0}' installed.", shortName));
            }
            catch (Exception ex)
            {
                UpdateStatus(string.Format("'{0}' an error occured during installation:",shortName));
                UpdateStatus(ex.Message);
            }
        }