/// <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)); }
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); }
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); }
public PublicPlace(string name, string groupName) : this(name) { _voca.AddName(KindsOfNames.Group, groupName); }
public CriminalGang(string name, string groupName) : this(name) { _voca.AddName(KindsOfNames.Group, groupName); }