public static List <ComplexMappingModel> LoadMappings(Mapping rootMapping) { MappingManager mappingManager = new MappingManager(); try { List <ComplexMappingModel> tmp = new List <ComplexMappingModel>(); //get all complex mappings List <Mapping> mappings = mappingManager.GetChildMapping(rootMapping.Id, 1).ToList(); foreach (var mapping in mappings) { ComplexMappingModel model = CreateComplexMappingModel(mapping); //get all complex mappings List <Mapping> childMappings = mappingManager.GetChildMapping(mapping.Id, 2).ToList(); foreach (var cm in childMappings) { //ToDO Add transformation rule model.SimpleMappings.Add(CreateSimpleMappingModel(cm, cm.Source, cm.Target)); } tmp.Add(model); } return(tmp); } finally { mappingManager.Dispose(); } }
public ActionResult SaveMapping(ComplexMappingModel model) { MappingManager mappingManager = new MappingManager(); //save link element if not exits //source try { #region save or update RootMapping //create source Parents if not exist LinkElement sourceParent = MappingHelper.CreateIfNotExistLinkElement(model.Source.Parent, mappingManager); //create source Parents if not exist LinkElement targetParent = MappingHelper.CreateIfNotExistLinkElement(model.Target.Parent, mappingManager); //create root mapping if not exist Mapping rootMapping = MappingHelper.CreateIfNotExistMapping(sourceParent, targetParent, 0, null, null, mappingManager); #endregion #region save or update complex mapping LinkElement source; LinkElement target; //create source source = MappingHelper.CreateIfNotExistLinkElement(model.Source, sourceParent.Id, mappingManager); model.Source.Id = source.Id; model.Source = MappingHelper.LoadChildren(model.Source); //create target target = MappingHelper.CreateIfNotExistLinkElement(model.Target, targetParent.Id, mappingManager); model.Target.Id = target.Id; model.Target = MappingHelper.LoadChildren(model.Target); //save mapping Mapping mapping = MappingHelper.CreateIfNotExistMapping(source, target, 1, null, rootMapping, mappingManager); model.Id = mapping.Id; model.ParentId = mapping.Parent.Id; #endregion #region create or update simple mapping MappingHelper.UpdateSimpleMappings(source.Id, target.Id, model.SimpleMappings, mapping, mappingManager); #endregion //load all mappings return(PartialView("Mapping", model)); } finally { mappingManager.Dispose(); MappingUtils.Clear(); } }