Пример #1
0
        private void DownloadAndInstallClick(object sender, RoutedEventArgs e)
        {
            var wnd = new Windows.ChangeSetsProgressDialog("Downloading and installing...")
            {
                Owner = Program.MainWindowNew
            };
            String urlLink = urlBox.Text;

            ThreadPool.QueueUserWorkItem(_ =>
            {
                try
                {
                    int max = 6;
                    wnd.UpdateProgress(0, max, "Retrieving xml...", false);
                    XmlSetParser xmls = new XmlSetParser(urlLink);
                    XmlInstaller xmli = new XmlInstaller(xmls);
                    xmli.installSet(wnd, max, game);
                }
                catch (Exception ex)
                {
                    wnd.UpdateProgress(6, 6, string.Format("Caught exception: '{0}'", ex.Message), false);
                }
            });
            wnd.ShowDialog();
        }
Пример #2
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);
        }
Пример #3
0
        private void CheckXmlClick(object sender, RoutedEventArgs e)
        {
            var wnd = new Windows.ChangeSetsProgressDialog("Testing xml...")
            {
                Owner = Program.MainWindowNew
            };
            String urlLink = urlBox.Text;
            bool   is_ok   = false;

            ThreadPool.QueueUserWorkItem(_ =>
            {
                try
                {
                    int current = 0, max = 10;
                    wnd.UpdateProgress(current, max, "Retrieving xml...", false);
                    XmlSetParser xmls = new XmlSetParser(urlLink);
                    current++;
                    XmlSimpleValidate validator = new XmlSimpleValidate(xmls);
                    validator.CheckVerboseXml(wnd, max, game);
                    is_ok = true;
                }
                catch (Exception ex)
                {
                    wnd.UpdateProgress(10, 10, string.Format("Caught exception when retrieving / parsing xml: '{0}'", ex.Message), false);
                }
            });
            wnd.ShowDialog();
            button3.IsEnabled = is_ok;
            button2.IsEnabled = is_ok;
        }
Пример #4
0
        private void CheckXmlClick(object sender, RoutedEventArgs e)
        {
            var wnd = new Windows.ChangeSetsProgressDialog("Testing xml...") {Owner = Program.MainWindowNew};
            String urlLink = urlBox.Text;
            bool is_ok = false;
            ThreadPool.QueueUserWorkItem(_ =>
                                             {
                                                 try
                                                 {
                                                     int current = 0, max = 10;
                                                     wnd.UpdateProgress(current, max, "Retrieving xml...", false);
                                                     XmlSetParser xmls = new XmlSetParser(urlLink);
                                                     current++;
                                                     XmlSimpleValidate validator = new XmlSimpleValidate(xmls);
                                                     validator.CheckVerboseXml(wnd, max, game);
                                                     is_ok = true;
                                                 }
                                                 catch (Exception ex)
                                                 {
                                                     wnd.UpdateProgress(10, 10, string.Format("Caught exception when retrieving / parsing xml: '{0}'", ex.Message), false);
                                                 }

                                             });
            wnd.ShowDialog();
            button3.IsEnabled = is_ok;
            button2.IsEnabled = is_ok;
        }
Пример #5
0
 public void DeletedSelected()
 {
     var wnd = new Windows.ChangeSetsProgressDialog("Removing Sets...") { Owner = Program.MainWindow };
     System.Collections.IList items = lbSetList.SelectedItems;
     ThreadPool.QueueUserWorkItem(_ =>
     {
         int current = 0, max = items.Count;
         wnd.UpdateProgress(current, max, null, false);
         wnd.ShowMessage("Set Removal can take some time. Please be patient.");
         foreach (Set s in items)
         {
             ++current;
             try
             {
                 wnd.ShowMessage(string.Format("Removing '{0}' ...", s.Name));
                 SelectedGame.DeleteSet(s);
                 wnd.UpdateProgress(current, max,
                                    string.Format("'{0}' removed.", s.Name),
                                    false);
             }
             catch (Exception ex)
             {
                 wnd.UpdateProgress(current, max,
                                    string.Format(
                                        "'{0}' an error occured during removal:",
                                        s.Name), true);
                 wnd.UpdateProgress(current, max, ex.Message, true);
             }
         }
     });
     wnd.ShowDialog();
     RefreshList();
 }
Пример #6
0
        public void CheckXml(Windows.ChangeSetsProgressDialog wnd, int max, DataNew.Entities.Game game)
        {
            XmlSetParser xmls = xml_set;

            if (game.Id.ToString() != xmls.game())
            {
                wnd.UpdateProgress(max, max, string.Format("Error! Wrong game specified in xml"), false);
                return;
            }
            xmls.check();
        }
Пример #7
0
        public void InstallSets()
        {
            var ofd = new OpenFileDialog
                          {
                              Filter = "Cards set definition files (*.o8s)|*.o8s",
                              Multiselect = true
                          };
            if (ofd.ShowDialog() != true) return;

            //Move the definition file to a new location, so that the old one can be deleted
            string path = Path.Combine(SimpleConfig.ReadValue("datadirectory", Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Octgn")), "Games", SelectedGame.Id.ToString() ,"Sets");
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);

            var wnd = new Windows.ChangeSetsProgressDialog("Installing Sets...") {Owner = Program.MainWindow};
            ThreadPool.QueueUserWorkItem(_ =>
                                             {
                                                 int current = 0, max = ofd.FileNames.Length;
                                                 wnd.UpdateProgress(current, max, null, false);
                                                 foreach (string setName in ofd.FileNames)
                                                 {
                                                     ++current;
                                                     string shortName = Path.GetFileName(setName);
                                                     try
                                                     {
                                                         if (shortName != null)
                                                         {
                                                             string copyto = Path.Combine(path, shortName);
                                                             if (setName.ToLower() != copyto.ToLower())
                                                                 File.Copy(setName, copyto, true);
                                                             SelectedGame.InstallSet(copyto);
                                                         }
                                                         wnd.UpdateProgress(current, max,
                                                                            string.Format("'{0}' installed.", shortName),
                                                                            false);
                                                     }
                                                     catch (Exception ex)
                                                     {
                                                         wnd.UpdateProgress(current, max,
                                                                            string.Format(
                                                                                "'{0}' an error occured during installation:",
                                                                                shortName), true);
                                                         wnd.UpdateProgress(current, max, ex.Message, true);
                                                     }
                                                 }
                                             });
            wnd.ShowDialog();
            RefreshList();
        }
Пример #8
0
        public void DeletedSelected()
        {
            if (SelectedGame == null)
            {
                return;
            }
            var wnd = new Windows.ChangeSetsProgressDialog("Removing Sets...")
            {
                Owner = Program.MainWindowNew
            };

            System.Collections.IList items = lbSetList.SelectedItems;
            ThreadPool.QueueUserWorkItem(_ =>
            {
                int current = 0, max = items.Count;
                wnd.UpdateProgress(current, max, null, false);
                wnd.ShowMessage("Set Removal can take some time. Please be patient.");
                foreach (Set s in items)
                {
                    ++current;
                    try
                    {
                        wnd.ShowMessage(string.Format("Removing '{0}' ...", s.Name));
                        SelectedGame.DeleteSet(s);
                        wnd.UpdateProgress(current, max,
                                           string.Format("'{0}' removed.", s.Name),
                                           false);
                    }
                    catch (Exception ex)
                    {
                        wnd.UpdateProgress(current, max,
                                           string.Format(
                                               "'{0}' an error occured during removal:",
                                               s.Name), true);
                        wnd.UpdateProgress(current, max, ex.Message, true);
                    }
                }
            });
            wnd.ShowDialog();
            RefreshList();
        }
Пример #9
0
        public void CheckVerboseXml(Windows.ChangeSetsProgressDialog wnd, int max, DataNew.Entities.Game game)
        {
            XmlSetParser xmls = xml_set;

            wnd.UpdateProgress(1, max, "Parsing retrieved xml...", false);
            xmls.check();
            if (game.Id.ToString() != xmls.game())
            {
                wnd.UpdateProgress(10, 10, string.Format("Error! Wrong game specified in xml"), false);
                return;
            }
            wnd.UpdateProgress(2, max, "Name: " + xmls.name(), false);
            wnd.UpdateProgress(3, max, "Game: " + xmls.game(), false);
            wnd.UpdateProgress(4, max, "UUID: " + xmls.uuid(), false);
            wnd.UpdateProgress(5, max, "Version: " + xmls.version(), false);
            wnd.UpdateProgress(6, max, "Date: " + xmls.date(), false);
            wnd.UpdateProgress(7, max, "Link: " + xmls.link(), false);
            wnd.UpdateProgress(8, max, "Login: "******"Password: "******"Xml seems ok"), false);
        }
Пример #10
0
        private void DownloadAndInstallClick(object sender, RoutedEventArgs e)
        {
            var wnd = new Windows.ChangeSetsProgressDialog("Downloading and installing...") { Owner = Program.MainWindowNew };
            String urlLink = urlBox.Text;
            ThreadPool.QueueUserWorkItem(_ =>
            {
                try
                {
                    int max = 6;
                    wnd.UpdateProgress(0, max, "Retrieving xml...", false);
                    XmlSetParser xmls = new XmlSetParser(urlLink);
                    XmlInstaller xmli = new XmlInstaller(xmls);
                    xmli.installSet(wnd, max, game);

                }
                catch (Exception ex)
                {
                    wnd.UpdateProgress(6, 6, string.Format("Caught exception: '{0}'", ex.Message), false);
                }

            });
            wnd.ShowDialog();
        }
Пример #11
0
        public void InstallSets()
        {
            var ofd = new OpenFileDialog
            {
                Filter      = "Cards set definition files (*.o8s)|*.o8s",
                Multiselect = true
            };

            if (ofd.ShowDialog() != true)
            {
                return;
            }


            //Move the definition file to a new location, so that the old one can be deleted
            string path = Path.Combine(Prefs.DataDirectory, "Games", SelectedGame.Id.ToString(), "Sets");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            var wnd = new Windows.ChangeSetsProgressDialog("Installing Sets...")
            {
                Owner = Program.MainWindow
            };

            ThreadPool.QueueUserWorkItem(_ =>
            {
                int current = 0, max = ofd.FileNames.Length;
                wnd.UpdateProgress(current, max, null, false);
                foreach (string setName in ofd.FileNames)
                {
                    ++current;
                    string shortName = Path.GetFileName(setName);
                    try
                    {
                        if (shortName != null)
                        {
                            string copyto = Path.Combine(path, shortName);
                            if (setName.ToLower() != copyto.ToLower())
                            {
                                File.Copy(setName, copyto, true);
                            }
                            SelectedGame.InstallSet(copyto);
                        }
                        wnd.UpdateProgress(current, max,
                                           string.Format("'{0}' installed.", shortName),
                                           false);
                    }
                    catch (Exception ex)
                    {
                        wnd.UpdateProgress(current, max,
                                           string.Format(
                                               "'{0}' an error occured during installation:",
                                               shortName), true);
                        wnd.UpdateProgress(current, max, ex.Message, true);
                    }
                }
            });
            wnd.ShowDialog();
            RefreshList();
        }