Example #1
0
        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();
            }
        }
Example #2
0
        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();
            }
        }