Exemplo n.º 1
0
        public IDictionary <string, string> GetValues()
        {
            using (var str = FileReader.ReadFile(SourceFilePath))
            {
                var doc = XDocument.Load(str, LoadOptions.PreserveWhitespace);
                if (doc.Root == null)
                {
                    throw InvalidValuesFileStructure.BecauseMissingRoot(SourceFilePath);
                }

                var result     = new Dictionary <string, string>();
                var valueNodes = doc.Root.Elements()
                                 .Where(x => x.NodeType == XmlNodeType.Element);

                foreach (var el in valueNodes)
                {
                    var key = el.Name.LocalName;
                    if (result.ContainsKey(key))
                    {
                        throw InvalidValuesFileStructure.BecauseDuplicatedKey(SourceFilePath, key);
                    }
                    var value = el.NodeType == XmlNodeType.Element
                        ? el.GetInnerXmlAsText().Replace("\n", "\r\n")
                        : el.Value;
                    result.Add(key, value);
                }
                return(result);
            }
        }
Exemplo n.º 2
0
        public IDictionary <string, string> GetValues()
        {
            var doc        = xmlTextFileReader.Read(sourceFilePath);
            var result     = new Dictionary <string, string>();
            var valueNodes = doc.Elements()
                             .Where(x => x.NodeType == XmlNodeType.Element);

            foreach (var el in valueNodes)
            {
                var key = el.Name.LocalName;
                if (result.ContainsKey(key))
                {
                    throw InvalidValuesFileStructure.BecauseDuplicatedKey(sourceFilePath, key);
                }
                var value = el.NodeType == XmlNodeType.Element
                    ? el.GetInnerXmlAsText().Replace("\n", "\r\n")
                    : el.Value;
                result.Add(key, value);
            }
            return(result);
        }