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); }
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); } }