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(); } }
public JsonResult DeleteMapping(long id) { try { using (MappingManager mappingManager = new MappingManager()) { MappingHelper.DeleteMapping(id, mappingManager); //ToDo delete also all simple mappings that are belonging to the complex mapping return(Json(true)); } } catch (Exception ex) { return(Json(ex.Message)); } finally { MappingUtils.Clear(); } }