private HMEntities.Settings.HattrickSettings ProcessUserSettingsFile(XmlDocument xmlDocument)
        {
            try {
                HMEntities.Settings.HattrickSettings settings = new HMEntities.Settings.HattrickSettings();

                if (xmlDocument.DocumentElement.ChildNodes != null)
                {
                    foreach (XmlNode xmlNodeRoot in xmlDocument.DocumentElement.ChildNodes)
                    {
                        switch (xmlNodeRoot.Name)
                        {
                        case Tags.CategoryList:
                            settings.playerCategoryListField = ParseSettingCategoryListNode(xmlNodeRoot);

                            if (xmlNodeRoot.Attributes[Tags.Version] != null)
                            {
                                settings.categoryVersionIDField = Convert.ToInt32(xmlNodeRoot.Attributes[Tags.Version].InnerText);
                            }
                            break;

                        case Tags.PositionList:
                            settings.playerPositionsListField = ParseSettingPositionsListNode(xmlNodeRoot);

                            if (xmlNodeRoot.Attributes[Tags.Version] != null)
                            {
                                settings.positionsVersionIDField = Convert.ToInt32(xmlNodeRoot.Attributes[Tags.Version].InnerText);
                            }
                            break;

                        case Tags.ColumnTables:
                            settings.tableColumsListField = ParseSettingColumnListNode(xmlNodeRoot);

                            if (xmlNodeRoot.Attributes[Tags.Version] != null)
                            {
                                settings.tableColumsVersionIDField = Convert.ToInt32(xmlNodeRoot.Attributes[Tags.Version].InnerText);
                            }
                            break;

                        case Tags.LastFileList:
                            if (xmlNodeRoot.ChildNodes != null)
                            {
                                settings.lastFileListField = ParseSettingLastFilesNode(xmlNodeRoot);
                            }
                            break;
                        }
                    }
                }

                return(settings);
            } catch (Exception ex) {
                throw ex;
            }
        }
        /// <summary>
        /// Reads UserSettings xml file
        /// </summary>
        /// <param name="xmlContent">Xml content as a string</param>
        /// <returns>UserSettings object from file</returns>
        public HMEntities.Settings.HattrickSettings ReadUserSettingsFile(String xmlContent)
        {
            HMEntities.Settings.HattrickSettings settings = new HMEntities.Settings.HattrickSettings();

            try {
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(xmlContent);

                settings = ProcessUserSettingsFile(xmlDocument);
                settings.DefaultsRestored = true;

                return(settings);
            } catch (Exception ex) {
                throw ex;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Reads the UserSettings file and return it's content
        /// </summary>
        /// <returns>HattrickSettings for the selected user</returns>
        public HMEntities.Settings.HattrickSettings ReadUserSettingsFile(HM.Entities.HattrickManager.UserProfiles.User selectedUser)
        {
            try {
                HMEntities.Settings.HattrickSettings settings = new HMEntities.Settings.HattrickSettings();
                string path = System.IO.Path.Combine(selectedUser.dataFolderField, selectedUser.teamIdField.ToString());
                path = System.IO.Path.Combine(path, FolderNames.UserSettings);

                string fileName = Path.Combine(path, FileNames.UserSettings);

                if (File.Exists(fileName))
                {
                    settings = dataManager.ReadUserSettingsFile(GetFileStream(fileName));
                }
                else
                {
                    settings = dataManager.ReadUserSettingsFile(HM.Resources.GenericFunctions.GetDefaultSettings(HM.Resources.SettingTypes.All));
                }

                return(settings);
            } catch (Exception ex) {
                throw ex;
            }
        }
        private void WriteUserSettingsFile(HMEntities.UserProfiles.User hattrickUser)
        {
            try {
                HMEntities.Settings.HattrickSettings hattrickManagerSettings = hattrickUser.applicationSettingsField;
                XmlDocument xmlDocument = new XmlDocument();

                XmlElement xmlElementRoot = xmlDocument.CreateElement(Tags.HattrickManagerSettings);

                hattrickManagerSettings.savedDateField = DateTime.Now;

                xmlElementRoot.AppendChild(xmlDocument.CreateElement(Tags.SavedDate)).InnerText = hattrickManagerSettings.savedDateField.ToString(General.DateTimeFormat);


                // Categories
                XmlElement xmlElementCategoryList = xmlDocument.CreateElement(Tags.CategoryList);
                xmlElementCategoryList.SetAttribute(Tags.Version, hattrickManagerSettings.categoryVersionIDField.ToString());

                foreach (HMEntities.Settings.Category currentCategory in hattrickManagerSettings.playerCategoryListField)
                {
                    XmlElement xmlElementCategoryName      = xmlDocument.CreateElement(Tags.CategoryName);
                    XmlElement xmlElementCategoryColour    = xmlDocument.CreateElement(Tags.CategoryColour);
                    XmlElement xmlElementCategoryChecked   = xmlDocument.CreateElement(Tags.CategoryChecked);
                    XmlElement xmlElementCategoryProtected = xmlDocument.CreateElement(Tags.CategoryProtected);

                    xmlElementCategoryName.InnerText      = currentCategory.categoryNameField;
                    xmlElementCategoryColour.InnerText    = currentCategory.categoryColourField.ToString();
                    xmlElementCategoryChecked.InnerText   = currentCategory.categoryCheckedField.ToString();
                    xmlElementCategoryProtected.InnerText = currentCategory.categoryProtectedField.ToString();

                    XmlElement xmlCategory = xmlDocument.CreateElement(Tags.Category);

                    xmlCategory.SetAttribute(Tags.CategoryID, currentCategory.categoryIdField.ToString());

                    xmlCategory.AppendChild(xmlElementCategoryName);
                    xmlCategory.AppendChild(xmlElementCategoryColour);
                    xmlCategory.AppendChild(xmlElementCategoryChecked);
                    xmlCategory.AppendChild(xmlElementCategoryProtected);

                    xmlElementCategoryList.AppendChild(xmlCategory);
                }

                xmlElementRoot.AppendChild(xmlElementCategoryList);


                // Positions
                XmlElement xmlElementPositionList = xmlDocument.CreateElement(Tags.PositionList);
                xmlElementPositionList.SetAttribute(Tags.Version, hattrickManagerSettings.positionsVersionIDField.ToString());

                foreach (HMEntities.Settings.Position currentPosition in hattrickManagerSettings.playerPositionsListField)
                {
                    XmlElement xmlElementPositionWeights = xmlDocument.CreateElement(Tags.PositionWeightList);

                    xmlElementPositionWeights.SetAttribute(Tags.PositionID, ((int)currentPosition.positionID).ToString());

                    foreach (HM.Resources.PlayerSkillTypes skill in currentPosition.positionWeights.Keys)
                    {
                        XmlElement xmlElementWeight = xmlDocument.CreateElement(Tags.PositionWeight);

                        xmlElementWeight.SetAttribute(Tags.PositionWeightName, ((int)skill).ToString());
                        xmlElementWeight.InnerText = currentPosition.positionWeights[skill].ToString();

                        xmlElementPositionWeights.AppendChild(xmlElementWeight);
                    }

                    xmlElementPositionList.AppendChild(xmlElementPositionWeights);
                }

                xmlElementRoot.AppendChild(xmlElementPositionList);


                // Columns
                XmlElement xmlElementColumnTables = xmlDocument.CreateElement(Tags.ColumnTables);
                xmlElementColumnTables.SetAttribute(Tags.Version, hattrickManagerSettings.tableColumsVersionIDField.ToString());

                foreach (HM.Resources.ColumnTables tblKey in hattrickManagerSettings.tableColumsListField.Keys)
                {
                    List <HM.Entities.HattrickManager.Settings.Column> tablesColumns = hattrickManagerSettings.tableColumsListField[tblKey];
                    XmlElement xmlElementColumnList = xmlDocument.CreateElement(Tags.ColumnList);

                    xmlElementColumnList.SetAttribute(Tags.ColumnTableID, ((int)tblKey).ToString());

                    foreach (HMEntities.Settings.Column currentColumn in tablesColumns)
                    {
                        XmlElement xmlElementColumnID           = xmlDocument.CreateElement(Tags.ColumnID);
                        XmlElement xmlElementColumnTitle        = xmlDocument.CreateElement(Tags.ColumnTitle);
                        XmlElement xmlElementColumnWidth        = xmlDocument.CreateElement(Tags.ColumnWidth);
                        XmlElement xmlElementColumnType         = xmlDocument.CreateElement(Tags.ColumnDisplayType);
                        XmlElement xmlElementColumnAlignment    = xmlDocument.CreateElement(Tags.ColumnAlignment);
                        XmlElement xmlElementColumnDisplay      = xmlDocument.CreateElement(Tags.ColumnDisplay);
                        XmlElement xmlElementColumnDisplayIndex = xmlDocument.CreateElement(Tags.ColumnDisplayIndex);
                        XmlElement xmlElementColumnSorted       = xmlDocument.CreateElement(Tags.ColumnSortColumn);

                        xmlElementColumnID.InnerText           = currentColumn.columnIDField.ToString();
                        xmlElementColumnTitle.InnerText        = currentColumn.titleField;
                        xmlElementColumnWidth.InnerText        = currentColumn.widthField.ToString();
                        xmlElementColumnType.InnerText         = ((int)currentColumn.displayTypeField).ToString();
                        xmlElementColumnAlignment.InnerText    = ((int)currentColumn.alignmentField).ToString();
                        xmlElementColumnDisplay.InnerText      = currentColumn.displayColumnField.ToString();
                        xmlElementColumnDisplayIndex.InnerText = currentColumn.displayIndex.ToString();
                        xmlElementColumnSorted.InnerText       = currentColumn.sortedColumnField.ToString();

                        XmlElement xmlColumn = xmlDocument.CreateElement(Tags.Column);

                        xmlColumn.AppendChild(xmlElementColumnID);
                        xmlColumn.AppendChild(xmlElementColumnTitle);
                        xmlColumn.AppendChild(xmlElementColumnWidth);
                        xmlColumn.AppendChild(xmlElementColumnType);
                        xmlColumn.AppendChild(xmlElementColumnAlignment);
                        xmlColumn.AppendChild(xmlElementColumnDisplay);
                        xmlColumn.AppendChild(xmlElementColumnDisplayIndex);
                        xmlColumn.AppendChild(xmlElementColumnSorted);

                        xmlElementColumnList.AppendChild(xmlColumn);
                    }

                    xmlElementColumnTables.AppendChild(xmlElementColumnList);
                }

                xmlElementRoot.AppendChild(xmlElementColumnTables);


                // Last Files
                XmlElement xmlElementLastFilesList = xmlDocument.CreateElement(Tags.LastFileList);

                foreach (HMEntities.Settings.LastFiles currentFile in hattrickManagerSettings.lastFileListField)
                {
                    XmlElement xmlElementFileName = xmlDocument.CreateElement(Tags.LastFileName);
                    XmlElement xmlElementFileType = xmlDocument.CreateElement(Tags.LastFileType);
                    XmlElement xmlElementFileDate = xmlDocument.CreateElement(Tags.LastFileDate);

                    xmlElementFileName.InnerText = currentFile.fileNameField;
                    xmlElementFileType.InnerText = ((int)currentFile.fileTypeField).ToString();
                    xmlElementFileDate.InnerText = currentFile.dateField;

                    XmlElement xmlFile = xmlDocument.CreateElement(Tags.File);

                    xmlFile.AppendChild(xmlElementFileName);
                    xmlFile.AppendChild(xmlElementFileType);
                    xmlFile.AppendChild(xmlElementFileDate);

                    xmlElementLastFilesList.AppendChild(xmlFile);
                }

                xmlElementRoot.AppendChild(xmlElementLastFilesList);

                xmlDocument.AppendChild(xmlElementRoot);

                string path = System.IO.Path.Combine(hattrickUser.dataFolderField, hattrickUser.teamIdField.ToString());
                path = System.IO.Path.Combine(path, FolderNames.UserSettings);

                string fileName = Path.Combine(path, FileNames.UserSettings);

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

                xmlDocument.Save(fileName);
            } catch (Exception ex) {
                throw ex;
            }
        }
        /// <summary>
        /// Reads the UserSettings file and return it's content
        /// </summary>
        /// <returns>HattrickSettings for the selected user</returns>
        public HMEntities.Settings.HattrickSettings ReadUserSettingsFile(HM.Entities.HattrickManager.UserProfiles.User selectedUser)
        {
            try {
                HMEntities.Settings.HattrickSettings settings = new HMEntities.Settings.HattrickSettings();
                string path = System.IO.Path.Combine(selectedUser.dataFolderField, selectedUser.teamIdField.ToString());
                path = System.IO.Path.Combine(path, FolderNames.UserSettings);

                string fileName = Path.Combine(path, FileNames.UserSettings);

                if (File.Exists(fileName)) {
                    settings = dataManager.ReadUserSettingsFile(GetFileStream(fileName));
                } else {
                    settings = dataManager.ReadUserSettingsFile(HM.Resources.GenericFunctions.GetDefaultSettings(HM.Resources.SettingTypes.All));
                }

                return (settings);
            } catch (Exception ex) {
                throw ex;
            }
        }
        private HMEntities.Settings.HattrickSettings ProcessUserSettingsFile(XmlDocument xmlDocument)
        {
            try {
                HMEntities.Settings.HattrickSettings settings = new HMEntities.Settings.HattrickSettings();

                if (xmlDocument.DocumentElement.ChildNodes != null) {
                    foreach (XmlNode xmlNodeRoot in xmlDocument.DocumentElement.ChildNodes) {
                        switch (xmlNodeRoot.Name) {
                            case Tags.CategoryList:
                                settings.playerCategoryListField = ParseSettingCategoryListNode(xmlNodeRoot);

                                if (xmlNodeRoot.Attributes[Tags.Version] != null) {
                                    settings.categoryVersionIDField = Convert.ToInt32(xmlNodeRoot.Attributes[Tags.Version].InnerText);
                                }
                                break;
                            case Tags.PositionList:
                                settings.playerPositionsListField = ParseSettingPositionsListNode(xmlNodeRoot);

                                if (xmlNodeRoot.Attributes[Tags.Version] != null) {
                                    settings.positionsVersionIDField = Convert.ToInt32(xmlNodeRoot.Attributes[Tags.Version].InnerText);
                                }
                                break;
                            case Tags.ColumnTables:
                                settings.tableColumsListField = ParseSettingColumnListNode(xmlNodeRoot);

                                if (xmlNodeRoot.Attributes[Tags.Version] != null) {
                                    settings.tableColumsVersionIDField = Convert.ToInt32(xmlNodeRoot.Attributes[Tags.Version].InnerText);
                                }
                                break;
                            case Tags.LastFileList:
                                if (xmlNodeRoot.ChildNodes != null) {
                                    settings.lastFileListField = ParseSettingLastFilesNode(xmlNodeRoot);
                                }
                                break;
                        }
                    }
                }

                return (settings);
            } catch (Exception ex) {
                throw ex;
            }
        }
        /// <summary>
        /// Reads UserSettings xml file
        /// </summary>
        /// <param name="xmlContent">Xml content as a string</param>
        /// <returns>UserSettings object from file</returns>
        public HMEntities.Settings.HattrickSettings ReadUserSettingsFile(String xmlContent)
        {
            HMEntities.Settings.HattrickSettings settings = new HMEntities.Settings.HattrickSettings();

            try {
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(xmlContent);

                settings = ProcessUserSettingsFile(xmlDocument);
                settings.DefaultsRestored = true;

                return (settings);
            } catch (Exception ex) {
                throw ex;
            }
        }