Пример #1
0
        /// <summary>
        /// Tries to parse a single item
        /// from the US Domus Opes data file
        /// </summary>
        /// <param name="xmlNode"></param>
        /// <param name="voca"></param>
        /// <returns></returns>
        internal static bool TryParseUsDomusOpesXml(XmlNode xmlNode, out IVoca voca)
        {
            voca = null;

            if (xmlNode == null)
            {
                return(false);
            }

            if (!(xmlNode is XmlElement xmlElem))
            {
                return(false);
            }

            var egs = new List <string>();

            var groupName = xmlElem.ParentNode is XmlElement groupElem && groupElem.HasAttributes
                ? groupElem.GetAttribute("name")
                : "";
            var itemName = xmlElem.GetAttribute("name");
            var abbrev   = xmlElem.GetAttribute("abbrev");

            if (xmlElem.HasChildNodes)
            {
                foreach (var cn in xmlElem.ChildNodes)
                {
                    if (!(cn is XmlElement childElem))
                    {
                        continue;
                    }
                    if (childElem.LocalName != "eg" || !childElem.HasAttributes)
                    {
                        continue;
                    }
                    var eg = childElem.GetAttribute("name");
                    if (String.IsNullOrWhiteSpace(eg))
                    {
                        continue;
                    }
                    egs.Add(eg);
                }
            }

            voca = new VocaBase(itemName);
            if (!string.IsNullOrWhiteSpace(abbrev))
            {
                voca.AddName(KindsOfNames.Abbrev, abbrev);
            }
            if (!string.IsNullOrWhiteSpace(groupName))
            {
                voca.AddName(KindsOfNames.Group, groupName);
            }

            return(!string.IsNullOrWhiteSpace(itemName));
        }
Пример #2
0
        public void TestToData()
        {
            var testSubject = new VocaBase();

            testSubject.AddName(KindsOfNames.Maiden, "Butler");
            testSubject.AddName(KindsOfNames.First, "Judith");
            testSubject.AddName(KindsOfNames.Surname, "Williamson");
            testSubject.AddName(KindsOfNames.Colloquial | KindsOfNames.First, "Judy");
            testSubject.AddName(KindsOfNames.Former | KindsOfNames.Surname | KindsOfNames.Spouse, "Cricket");

            var testResult = testSubject.ToData(KindsOfTextCase.Kabab);

            var asJson = JsonConvert.SerializeObject(testResult, Formatting.Indented);

            Console.WriteLine(asJson);
        }
Пример #3
0
        public void TestUpsertName()
        {
            var testSubject = new VocaBase();

            testSubject.Names.Add(new Tuple <KindsOfNames, string>(KindsOfNames.Legal, "TestCorporation"));

            testSubject.AddName(KindsOfNames.Legal, "OtherName");
            var testResult = testSubject.Names.FirstOrDefault(x => x.Item1 == KindsOfNames.Legal);

            Assert.IsNotNull(testResult);
            Assert.AreEqual("OtherName", testResult.Item2);

            //add a bitwise kind of name
            testSubject.AddName(KindsOfNames.Legal | KindsOfNames.Technical, "TechnicalName");

            //assert the original is not effected
            testResult = testSubject.Names.FirstOrDefault(x => x.Item1 == KindsOfNames.Legal);
            Assert.IsNotNull(testResult);
            Assert.AreEqual("OtherName", testResult.Item2);

            testResult = testSubject.Names.FirstOrDefault(x => x.Item1 == (KindsOfNames.Legal | KindsOfNames.Technical));
            Assert.IsNotNull(testResult);
            Assert.AreEqual("TechnicalName", testResult.Item2);
        }
Пример #4
0
 public PublicPlace(string name, string groupName) : this(name)
 {
     _voca.AddName(KindsOfNames.Group, groupName);
 }
Пример #5
0
 public CriminalGang(string name, string groupName) : this(name)
 {
     _voca.AddName(KindsOfNames.Group, groupName);
 }