static private XElement[] _getMasterForm(XElement obj, string StorageClass) { //var islandElements = Islands[obj.Attribute("island_id").Value]; IEnumerable <XElement> IM; Islands.TryGetValue("ImanRelation", out IM); IEnumerable <XElement> Form; Islands.TryGetValue("Form", out Form); IEnumerable <XElement> FormS; Islands.TryGetValue(StorageClass, out FormS); IM = IM ?? Enumerable.Empty <XElement>(); Form = Form ?? Enumerable.Empty <XElement>(); FormS = FormS ?? Enumerable.Empty <XElement>(); var MasterForm = (from im in IM join mForm in Form on im.Attribute("secondary_object").Value equals mForm.Attribute("puid").Value join mFormS in FormS on mForm.Attribute("data_file").Value equals mFormS.Attribute("puid").Value into mf1 from mFormS in mf1.DefaultIfEmpty() where obj.Attribute("puid").Value == im.Attribute("primary_object").Value&& im.Attribute("relation_type").Value == _IMAN_master_form select new XElement[2] { mForm, mFormS }).SingleOrDefault(); return(MasterForm); }
private static IEnumerable <Classes.RevisionClass> _getItemRevisions(XElement item, string sRev, string StorageClass) { IEnumerable <XElement> Rev; Islands.TryGetValue(sRev, out Rev); Rev = Rev ?? Enumerable.Empty <XElement>(); var Revisions = (from rev in Rev where rev.Attribute("items_tag").Value == item.Attribute("puid").Value select new Classes.RevisionClass { element = rev, masterRevForm = new RevisionClass.ItemRevMasterFormClass() }).ToList(); if (Revisions.Count() == 0) { Revisions = (from rev in _xml.Elements(_ns + sRev) where rev.Attribute("items_tag").Value == item.Attribute("puid").Value select new Classes.RevisionClass { element = rev, masterRevForm = new RevisionClass.ItemRevMasterFormClass() }).ToList(); } if (Revisions.Count() == 0) { Global._errList.Add(new ErrorList.ErrorInfo(Global._mapCounter, ErrorCodes.REVISIONS_NOT_FOUND, item.Attribute("puid").Value, sRev, TCTypes.Item, item.Attribute("item_id").Value)); } foreach (var r in Revisions) { r.masterRevForm = new RevisionClass.ItemRevMasterFormClass(r.element, StorageClass); } return(Revisions); }
private static ItemClass _getItem(XElement rev, string sitem, string srev, string sMasterFormS, string smasterRevFormS) { //var islandElements = Islands[rev.Attribute("island_id").Value]; IEnumerable <XElement> Item; Islands.TryGetValue(sitem, out Item); Item = Item ?? Enumerable.Empty <XElement>(); try { ItemClass qItem = (from item in Item where item.Attribute("puid").Value == rev.Attribute("items_tag").Value select new ItemClass(item, srev, sMasterFormS, smasterRevFormS)).SingleOrDefault(); //check if in another island if (qItem == null) { qItem = (from item in _xml.Elements(_ns + sitem) where item.Attribute("puid").Value == rev.Attribute("items_tag").Value select new ItemClass(item, srev, sMasterFormS, smasterRevFormS)).Single(); } return(qItem); } catch (System.Exception ex) { Global._errList.Add(new ErrorList.ErrorInfo(0, ErrorCodes.ITEM_NOT_FOUND, rev.Attribute("puid").Value, srev, TCTypes.ItemRevision, "<" + rev.Attribute("items_tag").Value + ">", rev.Attribute("item_revision_id").Value)); return(null); } }