Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }