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(); } }
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); }
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); }
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(); } }
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(); } }
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(); } }
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); } }
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); } }
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(); } }