public void UpdateData(XDocument doc, string columnName, string tagName) { IEnumerable <System.Xml.Linq.XElement> eventElements = doc.Descendants(Constants.Event.eventElement); foreach (System.Xml.Linq.XElement eventElement in eventElements) { var workElements = eventElement.Descendants(Constants.Work.workElement); foreach (var workElement in workElements) { Work workItem = Work.GetWorkFromNode(workElement); IEnumerable <System.Xml.Linq.XElement> workDocumentElements = workElement.Descendants(Constants.WorkDocument.workDocumentElement); foreach (var workDocumentElement in workDocumentElements) { int documentID = 0; int.TryParse((string)workDocumentElement.GetXElement(Constants.WorkArtist.workArtistIDElement), out documentID); WorkDocument updateWorkDocument = WorkDocument.GetDocumentByID(documentID, workItem.WorkID); updateWorkDocument = WorkDocument.BuildWorkDocument(workDocumentElement, documentID, updateWorkDocument); if (updateWorkDocument == null) { continue; } object newValue = (string)workDocumentElement.GetXElement(tagName); BsoArchiveEntities.UpdateObject(updateWorkDocument, newValue, columnName); BsoArchiveEntities.Current.Save(); } } } }
/// <summary> /// Create EventWork objects /// </summary> /// <remarks> /// Takes an Event object along with an XElement node which represents /// an eventItem and gets all the workItem child elements from it and /// creates EventWork item objects for each one. /// </remarks> /// <param name="eventItem"></param> /// <param name="node"></param> public void AddEventWorkItems(Event eventItem, XElement node) { Log.Debug("Started adding event work items."); IEnumerable <XElement> workElements = node.Descendants("workItem"); foreach (XElement workElement in workElements) { Work workItem = Work.GetWorkFromNode(workElement); if (workItem != null && workItem.WorkID != 0) { eventItem.AddEventWork(workItem); } } Log.Debug("Finished adding event work items."); }
/// <summary> /// Updates the existing database Work on the column name using the /// XML document parsed using the tagName. /// </summary> /// <param name="doc"></param> /// <param name="columnName"></param> /// <param name="tagName"></param> public void UpdateData(System.Xml.Linq.XDocument doc, string columnName, string tagName) { IEnumerable <System.Xml.Linq.XElement> eventElements = doc.Descendants(Constants.Event.eventElement); foreach (System.Xml.Linq.XElement element in eventElements) { //System.Xml.Linq.XElement workNode = element.Element(Constants.Work.workElement); var workNodes = element.Descendants(Constants.Work.workElement); foreach (var workNode in workNodes) { Work updateWork = Work.GetWorkFromNode(workNode); if (updateWork == null) { continue; } object newValue = (string)workNode.GetXElement(tagName); BsoArchiveEntities.UpdateObject(updateWork, newValue, columnName); } } }