Ejemplo n.º 1
0
        public void DeserializeVersionLinks(XElement parentNode, SerializationContext context)
        {
            foreach (XElement linkedItemsElement in parentNode.Elements(context.ExolutioNS + "LinkedItems"))
            {
                VersionedItemPivot pivot = new VersionedItemPivot();
                PivotList.Add(pivot);

                Dictionary <Version, Guid> linkedItemsIds = new Dictionary <Version, Guid>();
                foreach (XElement linkedItemElement in linkedItemsElement.Elements(context.ExolutioNS + "LinkedItem"))
                {
                    Guid    id        = SerializationContext.DecodeGuid(linkedItemElement.Attribute("itemID").Value);
                    Guid    versionId = SerializationContext.DecodeGuid(linkedItemElement.Attribute("versionNumber").Value);
                    Version version   = (Version)Project.TranslateComponent(versionId);
                    linkedItemsIds[version] = id;
                }

                if (linkedItemsIds.Count > 0)
                {
                    foreach (KeyValuePair <Version, Guid> kvp in linkedItemsIds)
                    {
                        IVersionedItem exolutioObject = (IVersionedItem)Project.TranslateComponent(kvp.Value);
                        pivotLookupDictionary[exolutioObject.ID] = pivot;
                        pivot.PivotMapping.Add(kvp.Key, exolutioObject.ID);
                    }
                }
            }
        }