Ejemplo n.º 1
0
        /// <summary>
        /// Загружает конфигурацию из файла.
        /// </summary>
        /// <param name="aXmlFile">Путь до xml-файла.</param>
        public void LoadFromXmlFile(string aXmlFile)
        {
            if (string.IsNullOrEmpty(aXmlFile)) {
                throw new ArgumentNullException("aXmlFile");
            }

            var filePath = aXmlFile;
            if (!Path.IsPathRooted(aXmlFile)) {
                filePath = Application.StartupPath + "\\" + aXmlFile;
            }

            var document = new XmlDocument();
            document.Load(filePath);

            var root = document.DocumentElement;

            if (root == null) {
                throw new XmlException(filePath + " is not contain root element");
            }

            var items = root.ChildNodes;
            for (var itemIndex = 0; itemIndex < items.Count; ++itemIndex) {
                switch (items[itemIndex].Name) {
                    case NODE_CONFIGURATION:
                        var configuration = new TimeControllerConfiguration(items[itemIndex]);
                        configurations.Add(configuration);
                        break;
                    case NODE_PREFIX:
                        soundPrefix = new PrefixSound(items[itemIndex].InnerText);
                        break;
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Загружает карту фраз из указанного файла.
        /// </summary>
        /// <param name="aXmlFile">XML Файл карта ключ-фраза.</param>
        private void LoadFromXmlFile(string aXmlFile)
        {
            var document = new XmlDocument();
            document.Load(aXmlFile);

            var root = document.DocumentElement;

            if (root == null) {
                throw new XmlException("File " + aXmlFile + " is not contain root element");
            }

            var items = root.ChildNodes;
            for (var itemIndex = 0; itemIndex < items.Count; ++itemIndex) {
                switch (items[itemIndex].Name) {
                    case NODE_ITEM: {
                            var filename = string.Empty;
                            var message = string.Empty;
                            PrefixSound prefix = null;
                            var item = items[itemIndex];
                            var itemFiels = item.ChildNodes;
                            for (var fieldIndex = 0; fieldIndex < itemFiels.Count; ++fieldIndex) {
                                switch (itemFiels[fieldIndex].Name) {
                                    case NODE_FILENAME:
                                        filename = itemFiels[fieldIndex].InnerText.Trim();
                                        break;
                                    case NODE_MESSAGE:
                                        message = itemFiels[fieldIndex].InnerText.Trim();
                                        break;
                                    case NODE_PREFIX:
                                        prefix = new PrefixSound(itemFiels[fieldIndex].InnerText.Trim());
                                        break;
                                }
                            }

                            AddPhrase(filename, message, prefix);
                        }
                        break;
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Добавляет значение в карту.
        /// </summary>
        /// <param name="aFileName">Имя файла.</param>
        /// <param name="aText">Соответствующая fileName'у (ключу) фраза.</param>
        /// <param name="prefix"></param>
        private void AddPhrase(string aFileName, string aText, PrefixSound prefix)
        {
            if (string.IsNullOrEmpty(aFileName)) {
                throw new ArgumentNullException("aFileName");
            }

            if (string.IsNullOrEmpty(aText)) {
                throw new ArgumentNullException("aText");
            }

            if (IsContainSound(aFileName)) {
                throw new ArgumentException(string.Format("Phrase for {0} already exist", aFileName));
            }

            fileNames.Add(aFileName);
            phrases.Add(aText);
            prefixs.Add(prefix);
        }