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