예제 #1
0
        internal void LoadFileList(string filePath)
        {
            ListFiles = new List <FileListItem>();
            using (var xm = new XmlManager())
            {
                xm.InitializeFromFile(filePath);
                XmlNodeList filesNodes = xm.GetNodes("Files/File");

                foreach (XmlNode fileNode in filesNodes)
                {
                    var fileItem = new FileListItem
                    {
                        Path = fileNode.InnerText,
                        Size = fileNode.ParseIntAttribute("Size")
                    };
                    if (fileNode.HasAttribute("Verify"))
                    {
                        fileItem.VerifyMD5 = true;
                        fileItem.MD5       = fileNode.ParseStringAttribute("MD5");
                    }

                    ListFiles.Add(fileItem);
                }
            }

#if DEBUG
            Debug.Print("{0} Files Loaded from FileList.xml!", ListFiles.Count);
#endif
        }
예제 #2
0
        internal Language LoadLanguageStrings(int languageId)
        {
            try
            {
                Language lang = Languages.FirstOrDefault(l => l.Id == languageId);
                if (lang == null)
                {
                    throw new NullReferenceException("language");
                }

                XmlManager xml = new XmlManager();
                xml.InitializeFromFile(string.Format(LauncherConstants.LanguagesStringsFilePath, lang.FileName));

                XmlNodeList languageNodes = xml.GetNodes("language/strings/string");

                foreach (XmlNode nodeString in languageNodes)
                {
                    lang.Strings.Add(nodeString.ParseIntAttribute("id"), nodeString.InnerText);
                }

#if DEBUG
                Debug.Print("Loaded strings -> {0} from language {1}", lang.Strings.Count, lang.Name);
#endif

                CurrentLanguage = lang;
                return(lang);
            }
            catch (Exception er)
            {
                LogManager.WriteLog("Exception on load language strings: " + er.Message);
                return(null);
            }
        }
예제 #3
0
        internal void LoadBadListFiles(string filePath)
        {
            ListBadFiles = new List <BadFile>();
            using (var xm = new XmlManager())
            {
                xm.InitializeFromFile(filePath);
                XmlNodeList badFilesNodes = xm.GetNodes("Files/File");
                foreach (XmlNode badFilesNode in badFilesNodes)
                {
                    ListBadFiles.Add(new BadFile
                    {
                        Path = badFilesNode.InnerText
                    });
                }
            }

            OnBadFilesLoadCompleteCallback?.Invoke(ListBadFiles);
#if DEBUG
            Debug.Print(ListBadFiles.Count + " Bad files loaded");
#endif
        }
예제 #4
0
        private void OnNewsStringDownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            News = new List <News>();
            if (string.IsNullOrEmpty(e.Result))
            {
                LogManager.WriteLog("News xml is null or empty");
                AddDefaultNews();
            }
            else
            {
                try
                {
                    XmlManager xm = new XmlManager();
                    xm.InitializeFromString(e.Result);

                    XmlNodeList newsNodeList = xm.GetNodes("notices/notice");
                    foreach (XmlNode newsNode in newsNodeList)
                    {
                        News.Add(new News
                        {
                            Title = newsNode.SelectSingleNode("title").InnerText,
                            Date  = newsNode.SelectSingleNode("when").InnerText,
                            Url   = FtpSettings.ForumUrl + newsNode.SelectSingleNode("url").InnerText
                        });
                    }

                    if (News.Count == 0)
                    {
                        AddDefaultNews(LanguageManager.GetString(10));
                    }
                }
                catch (Exception exception)
                {
                    AddDefaultNews();
                    LogManager.WriteLog("Exception on download news Xml: " + exception.Message);
                }
            }

            OnNewsDownloadCallback?.Invoke(News);
        }