Ejemplo n.º 1
0
        public ActionResult ReloadTarget(long sourceId = 1, long targetId = 0, LinkElementType sourceType = LinkElementType.System, LinkElementType targetType = LinkElementType.System, LinkElementPostion position = LinkElementPostion.Target)
        {
            MappingManager mappingManager = new MappingManager();

            try
            {
                LinkElementRootModel model = null;

                long            id   = position.Equals(LinkElementPostion.Source) ? sourceId : targetId;
                LinkElementType type = position.Equals(LinkElementPostion.Source) ? sourceType : targetType;


                switch (type)
                {
                case LinkElementType.System:
                {
                    model = MappingHelper.LoadfromSystem(position, mappingManager);

                    break;
                }

                case LinkElementType.MetadataStructure:
                {
                    model = MappingHelper.LoadFromMetadataStructure(id, position, mappingManager);
                    break;
                }
                }

                return(PartialView("LinkElemenRoot", model));
            }
            finally
            {
                mappingManager.Dispose();
            }
        }
Ejemplo n.º 2
0
        public static LinkElementRootModel CreateLinkElementContainerModels(LinkElementRootModel model)
        {
            foreach (LinkElementComplexity value in LinkElementComplexity.GetValues(typeof(LinkElementComplexity)))
            {
                LinkElementContainerModel tmp = CreateLinkeContainerModel(value, model.LinkElements, model.Position);
                if (tmp != null)
                {
                    model.LinkElementContainers.Add(tmp);
                }
            }

            return(model);
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
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();
            }
        }
Ejemplo n.º 5
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();
            }
        }
Ejemplo n.º 6
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();
            }
        }
Ejemplo n.º 7
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);
            }
        }
Ejemplo n.º 8
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);
                    }
        }
Ejemplo n.º 9
0
        public ActionResult ReloadMapping(long sourceId = 1, long targetId = 0, LinkElementType sourceType = LinkElementType.System, LinkElementType targetType = LinkElementType.System, LinkElementPostion position = LinkElementPostion.Target)
        {
            MappingManager mappingManager = new MappingManager();

            try
            {
                List <ComplexMappingModel> model = new List <ComplexMappingModel>();

                // load from mds example
                LinkElementRootModel source = null;

                switch (sourceType)
                {
                case LinkElementType.System:
                {
                    source = MappingHelper.LoadfromSystem(LinkElementPostion.Source, mappingManager);

                    break;
                }

                case LinkElementType.MetadataStructure:
                {
                    source = MappingHelper.LoadFromMetadataStructure(targetId, LinkElementPostion.Source, mappingManager);
                    break;
                }
                }

                LinkElementRootModel target = null;
                switch (targetType)
                {
                case LinkElementType.System:
                {
                    target = MappingHelper.LoadfromSystem(LinkElementPostion.Target, mappingManager);

                    break;
                }

                case LinkElementType.MetadataStructure:
                {
                    target = MappingHelper.LoadFromMetadataStructure(targetId, LinkElementPostion.Target, mappingManager);
                    break;
                }
                }

                if (target != null)
                {
                    //get linkelements
                    LinkElement sourceLE = mappingManager.GetLinkElement(sourceId, sourceType);
                    LinkElement targetLE = mappingManager.GetLinkElement(targetId, targetType);

                    if (sourceLE != null && targetLE != null)
                    {
                        //get root mapping
                        Mapping rootMapping = mappingManager.GetMapping(sourceLE, targetLE);

                        if (rootMapping != null)
                        {
                            //get complex mappings
                            model = MappingHelper.LoadMappings(rootMapping);
                        }
                    }
                }


                return(PartialView("Mappings", model));
            }
            finally
            {
                mappingManager.Dispose();
            }
        }