private SdnList CreateModel(string xml) { SdnList sdn = new SdnList(); // convert our xml string to xml // XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); /** * loop through the nodes * Again here i probably would have prefered to use recursion. */ var nodes = xmlDoc.GetElementsByTagName("sdnEntry"); foreach (XmlNode node in nodes) { SdnEntry entry = new SdnEntry(); foreach (XmlNode child in node.ChildNodes) { // find out what node type it is and handle // switch (child.Name) { case "uid": entry.uid = Convert.ToInt32(child.InnerText); break; case "lastName": entry.lastName = child.InnerText; break; case "sdnType": entry.sdnType = child.InnerText; break; case "addressList": entry.addressList = CreateAddressList(child.ChildNodes); break; case "programList": entry.programList = CreateProgramList(child.ChildNodes); break; case "akaList": entry.akaList = CreateAkaList(child.ChildNodes); break; default: break; } } SdnEntry t = entry; sdn.sdnEntries.Add(entry); } return(sdn); }
private bool EntriesAreDifferent(SdnEntry entry1, SdnEntry entry2) { /** * compare entities * this is long winded and i would have liked to use recursion, however i'm not brilliant with reflection and i think it' sneeded here */ // first check scalar // if (entry1.uid != entry2.uid) { return(true); } if (entry1.lastName != entry2.lastName) { return(true); } if (entry1.sdnType != entry2.sdnType) { return(true); } if (entry1.addressList.Count() != entry2.addressList.Count()) { return(true); } if (entry1.programList.Count() != entry2.programList.Count()) { return(true); } if (entry1.akaList.Count() != entry2.akaList.Count()) { return(true); } // now check the collections // for (int a = 0; a < entry1.addressList.Count(); a++) { if (entry1.addressList[a].city != entry2.addressList[a].city) { return(true); } if (entry1.addressList[a].address1 != entry2.addressList[a].address1) { return(true); } if (entry1.addressList[a].country != entry2.addressList[a].country) { return(true); } if (entry1.addressList[a].uid != entry2.addressList[a].uid) { return(true); } if (entry1.addressList[a].postalCode != entry2.addressList[a].postalCode) { return(true); } } for (int ak = 0; ak < entry1.akaList.Count(); ak++) { if (entry1.akaList[ak].uid != entry2.akaList[ak].uid) { return(true); } if (entry1.akaList[ak].type != entry2.akaList[ak].type) { return(true); } if (entry1.akaList[ak].category != entry2.akaList[ak].category) { return(true); } } for (int p = 0; p < entry1.programList.Count(); p++) { if (entry1.programList[p] != entry2.programList[p]) { return(true); } } // if nothings changed the retturn // return(false); }
public void Add(DateTime dateTime, SdnEntry sdnEntry) => _sdnStorage.AddSdn(dateTime, sdnEntry);