Esempio n. 1
0
        private static List <LinkElementModel> createLinkElementModelPartyCustomType(PartyType partyType, LinkElementRootModel rootModel, LinkElementModel parent, MappingManager mappingManager)
        {
            List <LinkElementModel> tmp = new List <LinkElementModel>();

            PartyTypeManager partyTypeManager = new PartyTypeManager();

            try
            {
                foreach (var partyCustomType in partyType.CustomAttributes)
                {
                    long linkElementId = GetId(partyCustomType.Id, LinkElementType.PartyCustomType, mappingManager);

                    LinkElementModel LEModel = new LinkElementModel(
                        linkElementId,
                        partyCustomType.Id,
                        LinkElementType.PartyCustomType, partyCustomType.Name, partyType.Title + "/" + partyCustomType.Name, rootModel.Position, LinkElementComplexity.Simple, partyCustomType.Description);
                    LEModel.Parent = parent;

                    tmp.Add(LEModel);
                }


                return(tmp);
            }
            finally
            {
                partyTypeManager.Dispose();
            }
        }
Esempio n. 2
0
        public static LinkElement CreateLinkElement(LinkElementModel model)
        {
            MappingManager mappingManager = new MappingManager();

            try
            {
                Debug.WriteLine("CreateLinkElement");
                Debug.WriteLine(model.ElementId);
                Debug.WriteLine(model.Type);
                Debug.WriteLine(model.Name);

                if (model.Parent != null)
                {
                    Debug.WriteLine("Parent");
                    Debug.WriteLine(model.Parent.ElementId);
                    Debug.WriteLine(model.Parent.Type);
                    Debug.WriteLine(model.Parent.Name);
                    Debug.WriteLine("------------------");
                }

                return(mappingManager.CreateLinkElement(
                           model.ElementId,
                           model.Type,
                           model.Complexity,
                           model.Name,
                           model.XPath
                           ));
            }
            finally
            {
                mappingManager.Dispose();
            }
        }
Esempio n. 3
0
        private static List <LinkElementModel> getChildrenFromMetadataNestedUsage(LinkElementModel model)
        {
            MetadataAttributeManager metadataAttributeManager = new MetadataAttributeManager();

            try
            {
                MetadataNestedAttributeUsage metadataNestedAttributeUsage =
                    metadataAttributeManager.MetadataNestedAttributeUsageRepo.Get(model.ElementId);


                LinkElementComplexity complexity = LinkElementComplexity.None;
                LinkElementType       type       = LinkElementType.ComplexMetadataAttribute;

                complexity = metadataNestedAttributeUsage.Member.Self is MetadataSimpleAttribute
                    ? LinkElementComplexity.Simple
                    : LinkElementComplexity.Complex;

                if (complexity == LinkElementComplexity.Complex)
                {
                    return(getChildrenFromComplexMetadataAttribute(metadataNestedAttributeUsage.Member.Id, model.Position));
                }

                return(new List <LinkElementModel>());
            }
            finally
            {
                metadataAttributeManager.Dispose();
            }
        }
Esempio n. 4
0
        private static List <LinkElementModel> getChildrenFromPartyType(LinkElementModel model)
        {
            PartyTypeManager partyTypeManager = new PartyTypeManager();

            try
            {
                IEnumerable <PartyCustomAttribute> ptAttr = partyTypeManager.PartyCustomAttributeRepository.Get().Where(p => p.PartyType.Id.Equals(model.ElementId));

                foreach (var attr in ptAttr)
                {
                    model.Children.Add(
                        new LinkElementModel(
                            0,
                            attr.Id,
                            LinkElementType.PartyCustomType, attr.Name, "", model.Position, LinkElementComplexity.Simple, attr.Description)
                        );
                }

                return(model.Children);
            }
            finally
            {
                partyTypeManager.Dispose();
            }
        }
Esempio n. 5
0
        public static bool ExistLinkElementModel(LinkElementModel leModel, List <LinkElementModel> leModels)
        {
            if (leModels.Any(le => le.ElementId.Equals(leModel.ElementId) &&
                             le.Type.Equals(leModel.Type) &&
                             le.Complexity.Equals(leModel.Complexity)))
            {
                return(true);
            }

            return(false);
        }
Esempio n. 6
0
 public static LinkElement CreateIfNotExistLinkElement(LinkElementModel leModel, MappingManager mappingManager)
 {
     if (ExistLinkElement(leModel))
     {
         return(mappingManager.LinkElementRepo.Get()
                .FirstOrDefault(le => le.ElementId.Equals(leModel.ElementId) && le.Type.Equals(leModel.Type)));
     }
     else
     {
         return(CreateLinkElement(leModel));
     }
 }
Esempio n. 7
0
        private static List <LinkElementModel> getChildrenFromMetadataPackageUsage(LinkElementModel model)
        {
            MetadataStructureManager msm = new MetadataStructureManager();

            try
            {
                MetadataPackageUsage metadataPackageUsage = msm.PackageUsageRepo.Get(model.ElementId);

                return(getChildrenFromMetadataPackage(metadataPackageUsage.MetadataPackage.Id, model.Position));
            }
            finally
            {
                msm.Dispose();
            }
        }
Esempio n. 8
0
        private static LinkElementModel createLinkElementModelType(
            PartyType partyType,
            LinkElementRootModel rootModel,
            LinkElementModel parent, MappingManager mappingManager)
        {
            long linkElementId = GetId(partyType.Id, LinkElementType.PartyType, mappingManager);

            LinkElementModel LEModel = new LinkElementModel(
                linkElementId,
                partyType.Id,
                LinkElementType.PartyType, partyType.Title, "", rootModel.Position, LinkElementComplexity.Complex, partyType.Description);

            LEModel.Parent = parent;

            return(LEModel);
        }
Esempio n. 9
0
        public static LinkElementModel LoadChildren(LinkElementModel model)
        {
            switch (model.Type)
            {
            case LinkElementType.PartyType:
            {
                model.Children = getChildrenFromPartyType(model);
                break;
            }

            case LinkElementType.ComplexMetadataAttribute:
            {
                model.Children = getChildrenFromComplexMetadataAttribute(model);
                break;
            }

            case LinkElementType.MetadataNestedAttributeUsage:
            {
                //ToDo load childrens from nestedUsage
                model.Children = getChildrenFromMetadataNestedUsage(model);
                break;
            }

            case LinkElementType.MetadataPackage:
            {
                //ToDo load childrens from packageUsage
                model.Children = getChildrenFromMetadataPackage(model);
                break;
            }

            case LinkElementType.MetadataPackageUsage:
            {
                //ToDo load childrens from packageUsage
                model.Children = getChildrenFromMetadataPackageUsage(model);
                break;
            }

            case LinkElementType.MetadataAttributeUsage:
            {
                //ToDo load childrens from packageUsage
                model.Children = getChildrenFromMetadataAttributeUsage(model);
                break;
            }
            }

            return(model);
        }
Esempio n. 10
0
        public static LinkElementRootModel LoadFromMetadataStructure(long id, LinkElementPostion rootModelType, MappingManager mappingManager)
        {
            MetadataStructureManager metadataStructureManager = new MetadataStructureManager();

            try
            {
                MetadataStructure metadataStructure = metadataStructureManager.Repo.Get(id);

                LinkElementRootModel model = new LinkElementRootModel(LinkElementType.MetadataStructure, id, metadataStructure.Name, rootModelType);

                if (metadataStructure != null)
                {
                    LinkElement metadataStructureLinkElement = mappingManager.GetLinkElement(metadataStructure.Id,
                                                                                             LinkElementType.MetadataStructure);

                    long metadataStructureLinkElementId = 0;
                    if (metadataStructureLinkElement != null)
                    {
                        metadataStructureLinkElementId = metadataStructureLinkElement.Id;
                    }


                    LinkElementModel LEModel = new LinkElementModel(
                        metadataStructureLinkElementId,
                        metadataStructure.Id,
                        LinkElementType.MetadataStructure,
                        metadataStructure.Name, "Metadata",
                        rootModelType,
                        LinkElementComplexity.Complex,
                        metadataStructure.Description);


                    foreach (var pUsage in metadataStructure.MetadataPackageUsages)
                    {
                        addUsageAsLinkElement(pUsage, "Metadata", model, LEModel);
                    }

                    model    = CreateLinkElementContainerModels(model);
                    model.Id = id;
                }
                return(model);
            }
            finally
            {
                metadataStructureManager.Dispose();
            }
        }
Esempio n. 11
0
 public static LinkElement CreateIfNotExistLinkElement(LinkElementModel leModel, long parentId, MappingManager mappingManager)
 {
     if (ExistLinkElement(leModel))
     {
         return(mappingManager.LinkElementRepo.Get()
                .FirstOrDefault(le =>
                                le.ElementId.Equals(leModel.ElementId) &&
                                le.Type.Equals(leModel.Type) &&
                                le.Complexity.Equals(leModel.Complexity)
                                //le.Parent.Id.Equals(parentId)
                                ));
     }
     else
     {
         return(CreateLinkElement(leModel, parentId));
     }
 }
Esempio n. 12
0
        public static LinkElement CreateLinkElement(LinkElementModel model, long parentId)
        {
            MappingManager mappingManager = new MappingManager();

            try
            {
                return(mappingManager.CreateLinkElement(
                           model.ElementId,
                           model.Type,
                           model.Complexity,
                           model.Name,
                           model.XPath,
                           false
                           ));
            }
            finally
            {
                mappingManager.Dispose();
            }
        }
Esempio n. 13
0
        public static bool ExistLinkElement(LinkElementModel leModel)
        {
            MappingManager mappingManager = new MappingManager();

            try
            {
                if (mappingManager.LinkElementRepo.Get()
                    .Any(le => le.ElementId.Equals(leModel.ElementId) &&
                         le.Type.Equals(leModel.Type) &&
                         le.Complexity.Equals(leModel.Complexity)))
                {
                    return(true);
                }

                return(false);
            }
            finally
            {
                mappingManager.Dispose();
            }
        }
Esempio n. 14
0
        public static SimpleMappingModel CreateSimpleMappingModel(Mapping mapping, LinkElement source, LinkElement target)
        {
            LinkElementModel sourceModel = CreateLinkElementModel(source, LinkElementPostion.Source);
            LinkElementModel targetModel = CreateLinkElementModel(target, LinkElementPostion.Target);

            TransformationRuleModel transformationRuleModel = null;


            if (mapping.TransformationRule != null)
            {
                transformationRuleModel       = new TransformationRuleModel();
                transformationRuleModel.Id    = mapping.TransformationRule.Id;
                transformationRuleModel.RegEx = mapping.TransformationRule.RegEx;
                transformationRuleModel.Mask  = mapping.TransformationRule.Mask;
            }
            else
            {
                transformationRuleModel = new TransformationRuleModel();
            }

            long parentId = 0;

            if (mapping.Parent != null)
            {
                parentId = mapping.Parent.Id;
            }


            //ToDo Load Rules
            return(new SimpleMappingModel()
            {
                Id = mapping.Id,
                Source = sourceModel,
                Target = targetModel,
                TransformationRule = transformationRuleModel,
                ParentId = parentId
            });
        }
Esempio n. 15
0
        public static ComplexMappingModel CreateComplexMappingModel(Mapping mapping)
        {
            LinkElementModel sourceModel = CreateLinkElementModel(mapping.Source, LinkElementPostion.Source);
            LinkElementModel targetModel = CreateLinkElementModel(mapping.Target, LinkElementPostion.Target);

            sourceModel = LoadChildren(sourceModel);
            targetModel = LoadChildren(targetModel);

            long parentId = 0;

            if (mapping.Parent != null)
            {
                parentId = mapping.Parent.Id;
            }

            return(new ComplexMappingModel()
            {
                Id = mapping.Id,
                ParentId = parentId,
                Source = sourceModel,
                Target = targetModel
            });
        }
Esempio n. 16
0
        public static void addUsageAsLinkElement(BaseUsage usage, string parentXpath, LinkElementRootModel rootModel,
                                                 LinkElementModel parent)
        {
            int    min       = usage.MinCardinality;
            string childName = "";



            //MappingManager mappingManager = new MappingManager();


            string                usageName       = usage.Label;
            string                typeName        = "x";
            long                  typeId          = 0;
            string                typeDescription = "";
            string                xPath           = parentXpath;
            LinkElementType       type            = LinkElementType.ComplexMetadataAttribute;
            LinkElementComplexity complexity      = LinkElementComplexity.Complex;

            bool addTypeAsLinkElement = false;

            if (usage is MetadataPackageUsage)
            {
                type     = LinkElementType.MetadataPackageUsage;
                typeName = ((MetadataPackageUsage)usage).MetadataPackage.Name;
            }
            else if (usage is MetadataNestedAttributeUsage)
            {
                type = LinkElementType.MetadataNestedAttributeUsage;
                MetadataNestedAttributeUsage n = (MetadataNestedAttributeUsage)usage;
                typeName = n.Member.Name;

                if (n.Member.Self is MetadataCompoundAttribute)
                {
                    addTypeAsLinkElement = true;
                    typeId          = n.Member.Self.Id;
                    typeDescription = n.Member.Self.Description;
                }

                if (n.Member.Self is MetadataSimpleAttribute)
                {
                    complexity = LinkElementComplexity.Simple;
                }
            }
            else if (usage is MetadataAttributeUsage)
            {
                type = LinkElementType.MetadataAttributeUsage;
                MetadataAttributeUsage u = (MetadataAttributeUsage)usage;
                typeName = u.MetadataAttribute.Name;

                if (u.MetadataAttribute.Self is MetadataCompoundAttribute)
                {
                    addTypeAsLinkElement = true;
                    typeId          = u.MetadataAttribute.Self.Id;
                    typeDescription = u.MetadataAttribute.Self.Description;
                }

                if (u.MetadataAttribute.Self is MetadataSimpleAttribute)
                {
                    complexity = LinkElementComplexity.Simple;
                }
            }

            // add usage
            xPath = parentXpath + "/" + usageName.Replace(" ", string.Empty) + "/" + typeName;

            long   linkElementId = 0;
            string mask          = "";

            LinkElement linkElement = type.GetUnitOfWork().GetReadOnlyRepository <LinkElement>().Get()
                                      .FirstOrDefault(le => le.ElementId.Equals(usage.Id) && le.Type.Equals(type));

            if (linkElement != null)
            {
                linkElementId = linkElement.Id;
            }


            LinkElementModel LEModel = new LinkElementModel(
                linkElementId,
                usage.Id,
                type, usage.Label, xPath, rootModel.Position, complexity, usage.Description);

            LEModel.Parent = parent;
            rootModel.LinkElements.Add(LEModel);



            //add type
            if (addTypeAsLinkElement)
            {
                linkElementId = 0;

                linkElement =
                    type.GetUnitOfWork().GetReadOnlyRepository <LinkElement>().Get()
                    .FirstOrDefault(
                        le =>
                        le.ElementId.Equals(typeId) &&
                        le.Type.Equals(LinkElementType.ComplexMetadataAttribute));

                if (linkElement != null)
                {
                    linkElementId = linkElement.Id;
                }

                LEModel = new LinkElementModel(
                    linkElementId,
                    typeId,
                    LinkElementType.ComplexMetadataAttribute,
                    typeName,
                    xPath,
                    rootModel.Position,
                    complexity,
                    typeDescription);

                LEModel.Parent = parent;


                if (!rootModel.LinkElements.Any(le => le.ElementId.Equals(typeId) &&
                                                le.Type.Equals(LinkElementType.ComplexMetadataAttribute)))
                {
                    rootModel.LinkElements.Add(LEModel);
                }
            }


            //Debug.WriteLine("1: " + LEModel.Name + " " + LEModel.Type);

            List <BaseUsage> childrenUsages = metadataStructureUsageHelper.GetChildren(usage.Id, usage.GetType());

            if (childrenUsages.Count > 0)
            {
                foreach (BaseUsage childUsage in childrenUsages)
                {
                    addUsageAsLinkElement(childUsage, xPath, rootModel, LEModel);
                }

                //AddChildrens
                //addLinkElementsFromChildrens(usage, xPath, rootModel);
            }
        }
Esempio n. 17
0
        public static LinkElementRootModel LoadfromSystem(LinkElementPostion rootModelType, MappingManager mappingManager)
        {
            //get all parties - complex
            PartyTypeManager partyTypeManager = new PartyTypeManager();

            try
            {
                LinkElementRootModel model = new LinkElementRootModel(LinkElementType.System, 0, "System", rootModelType);

                LinkElement SystemRoot = mappingManager.GetLinkElement(0, LinkElementType.System);

                long id        = 0;
                long elementId = 0;
                if (SystemRoot != null)
                {
                    id        = SystemRoot.Id;
                    elementId = SystemRoot.ElementId;
                }


                LinkElementModel LEParent = new LinkElementModel(
                    id,
                    elementId,
                    LinkElementType.System,
                    "System", "",
                    rootModelType,
                    LinkElementComplexity.Complex,
                    "");



                IEnumerable <PartyType> partyTypes = partyTypeManager.PartyTypeRepository.Get();

                foreach (var pt in partyTypes)
                {
                    LinkElementModel ptModel = createLinkElementModelType(pt, model, LEParent, mappingManager);
                    model.LinkElements.Add(ptModel);
                    //get all partyCustomTypeAttr -> simple
                    model.LinkElements.AddRange(createLinkElementModelPartyCustomType(pt, model, ptModel, mappingManager));
                }

                //get all keys -> simple
                foreach (Key value in Key.GetValues(typeof(Key)))
                {
                    long linkElementId = GetId((int)value, LinkElementType.Key, mappingManager);
                    //string mask = GetMask((int)value, LinkElementType.Key);

                    LinkElementModel LEModel = new LinkElementModel(
                        linkElementId,
                        (int)value,
                        LinkElementType.Key, value.ToString(), "", model.Position, LinkElementComplexity.Simple, "");

                    LEModel.Parent = LEParent;

                    model.LinkElements.Add(LEModel);
                }

                //create container
                model = CreateLinkElementContainerModels(model);

                return(model);
            }
            finally
            {
                partyTypeManager.Dispose();
            }
        }
Esempio n. 18
0
 private static List <LinkElementModel> getChildrenFromMetadataPackage(LinkElementModel model)
 {
     return(getChildrenFromMetadataPackage(model.ElementId, model.Position));
 }
Esempio n. 19
0
        public static LinkElementRootModel LoadfromSystem(LinkElementPostion rootModelType, MappingManager mappingManager)
        {
            //get all parties - complex
            using (PartyTypeManager partyTypeManager = new PartyTypeManager())
                using (PartyRelationshipTypeManager partyRelationshipTypeManager = new PartyRelationshipTypeManager())
                    using (EntityManager entityManager = new EntityManager())
                    {
                        LinkElementRootModel model = new LinkElementRootModel(LinkElementType.System, 0, "System", rootModelType);

                        LinkElement SystemRoot = mappingManager.GetLinkElement(0, LinkElementType.System);

                        long id        = 0;
                        long elementId = 0;
                        if (SystemRoot != null)
                        {
                            id        = SystemRoot.Id;
                            elementId = SystemRoot.ElementId;
                        }

                        LinkElementModel LEParent = new LinkElementModel(
                            id,
                            elementId,
                            LinkElementType.System,
                            "System", "",
                            rootModelType,
                            LinkElementComplexity.Complex,
                            "");

                        #region get party types

                        IEnumerable <PartyType> partyTypes = partyTypeManager.PartyTypeRepository.Get();

                        foreach (var pt in partyTypes)
                        {
                            LinkElementModel ptModel = createLinkElementModelType(pt, model, LEParent, mappingManager);
                            model.LinkElements.Add(ptModel);
                            //get all partyCustomTypeAttr -> simple
                            model.LinkElements.AddRange(createLinkElementModelPartyCustomType(pt, model, ptModel, mappingManager));
                        }

                        #endregion get party types

                        #region keys

                        //get all keys -> simple
                        foreach (Key value in Key.GetValues(typeof(Key)))
                        {
                            long linkElementId = GetId((int)value, LinkElementType.Key, mappingManager);
                            //string mask = GetMask((int)value, LinkElementType.Key);

                            LinkElementModel LEModel = new LinkElementModel(
                                linkElementId,
                                (int)value,
                                LinkElementType.Key, value.ToString(), "", model.Position, LinkElementComplexity.Simple, "");

                            LEModel.Parent = LEParent;

                            model.LinkElements.Add(LEModel);
                        }

                        #endregion keys

                        #region get all relationships

                        IEnumerable <PartyRelationshipType> relationshipTypes = partyRelationshipTypeManager.PartyRelationshipTypeRepository.Get();

                        foreach (PartyRelationshipType partyRelationshipType in relationshipTypes)
                        {
                            long value         = partyRelationshipType.Id;
                            long linkElementId = GetId(partyRelationshipType.Id, LinkElementType.Key, mappingManager);

                            LinkElementModel LEModel = new LinkElementModel(
                                linkElementId,
                                partyRelationshipType.Id,
                                LinkElementType.PartyRelationshipType,
                                partyRelationshipType.DisplayName,
                                "",
                                model.Position,
                                LinkElementComplexity.Simple,
                                "");

                            LEModel.Parent = LEParent;

                            model.LinkElements.Add(LEModel);
                        }

                        #endregion get all relationships

                        #region entities

                        foreach (Entity entity in entityManager.Entities)
                        {
                            long value         = entity.Id;
                            long linkElementId = GetId(entity.Id, LinkElementType.Entity, mappingManager);

                            LinkElementModel LEModel = new LinkElementModel(
                                linkElementId,
                                entity.Id,
                                LinkElementType.Entity,
                                entity.Name,
                                "",
                                model.Position,
                                LinkElementComplexity.Simple,
                                "");

                            LEModel.Parent = LEParent;

                            model.LinkElements.Add(LEModel);
                        }

                        //test

                        #endregion entities

                        //create container
                        model = CreateLinkElementContainerModels(model);

                        return(model);
                    }
        }
Esempio n. 20
0
 private static List <LinkElementModel> getChildrenFromComplexMetadataAttribute(LinkElementModel model)
 {
     return(getChildrenFromComplexMetadataAttribute(model.ElementId, model.Position));
 }
Esempio n. 21
0
        public ActionResult AddMappingElement(LinkElementModel linkElementModel)
        {
            linkElementModel = MappingHelper.LoadChildren(linkElementModel);

            return(PartialView("MappingLinkElement", linkElementModel));
        }