Example #1
0
        public IActionResult CreateEntityMap(Guid entityid = default(Guid))
        {
            EditEntityMapModel model = new EditEntityMapModel
            {
                SolutionId           = SolutionId.Value,
                EntityId             = entityid,
                TargetEntityMetaData = entityid == default(Guid) ? null : _entityFinder.FindById(entityid),
                Attributes           = entityid == default(Guid) ? null : _attributeFinder.Query(n => n
                                                                                                 .Where(f => f.EntityId == entityid && f.Name.NotIn(AttributeDefaults.SystemAttributes) &&
                                                                                                        f.AttributeTypeName != AttributeTypeIds.PRIMARYKEY
                                                                                                        ).Sort(s => s.SortAscending(f => f.Name)))
            };

            return(View(model));
        }
Example #2
0
        public IActionResult EditEntityMap(Guid entitymapid)
        {
            var headEntityMap        = _entityMapFinder.FindById(entitymapid);
            EditEntityMapModel model = new EditEntityMapModel
            {
                EntityMapId          = entitymapid,
                EntityId             = headEntityMap.TargetEntityId,
                TargetEntityMetaData = _entityFinder.FindById(headEntityMap.TargetEntityId),
                SourceEntityMetaData = _entityFinder.FindById(headEntityMap.SourceEntityId),
                Attributes           = _attributeFinder.Query(n => n
                                                              .Where(f => f.EntityId == headEntityMap.TargetEntityId && f.Name.NotIn(AttributeDefaults.SystemAttributes)).Sort(s => s.SortAscending(f => f.Name))),
                SolutionId = SolutionId.Value,
                //单据头
                HeadEntityMap    = headEntityMap,
                RelationShipName = headEntityMap.RelationShipName,
                HeadAttributeMap = _attributeMapFinder.Query(n => n.Where(f => f.EntityMapId == headEntityMap.EntityMapId)),
                SourceEntityId   = headEntityMap.SourceEntityId,
                MapType          = headEntityMap.MapType
            };

            model.HeadRelationShip = _relationShipFinder.FindByName(model.RelationShipName);
            //单据体
            var childEntityMap = _entityMapFinder.FindByParentId(headEntityMap.EntityMapId);

            if (childEntityMap != null)
            {
                model.ChildEntityMap            = childEntityMap;
                model.ChildRelationShipName     = childEntityMap.RelationShipName;
                model.ChildTargetEntityMetaData = _entityFinder.FindById(childEntityMap.TargetEntityId);
                model.ChildSourceEntityMetaData = _entityFinder.FindById(childEntityMap.SourceEntityId);
                model.ChildAttributeMap         = _attributeMapFinder.Query(n => n.Where(f => f.EntityMapId == childEntityMap.EntityMapId));
                model.ChildTargetEntityId       = childEntityMap.TargetEntityId;
                model.ChildSourceEntityId       = childEntityMap.SourceEntityId;
            }
            return(View(model));
        }
Example #3
0
        public IActionResult EditEntityMap(EditEntityMapModel model)
        {
            if (ModelState.IsValid)
            {
                //原单据头
                var headEntityMap = _entityMapFinder.FindById(model.EntityMapId.Value);
                //原单据体
                var childEntityMap = _entityMapFinder.FindByParentId(headEntityMap.EntityMapId);
                //单据头
                if (model.HeadAttributeMap.NotEmpty())
                {
                    headEntityMap.MapType = model.MapType;
                    var headAttributeMap = new List <AttributeMap>();
                    foreach (var item in model.HeadAttributeMap)
                    {
                        if (!item.SourceAttributeId.Equals(Guid.Empty))
                        {
                            var attrMapTable = new AttributeMap
                            {
                                AttributeMapId    = Guid.NewGuid(),
                                CanChange         = item.CanChange,
                                EntityMapId       = headEntityMap.EntityMapId,
                                TargetAttributeId = item.TargetAttributeId,
                                SourceAttributeId = item.SourceAttributeId
                            };
                            headAttributeMap.Add(attrMapTable);
                        }
                    }
                    if (headAttributeMap.IsEmpty())
                    {
                        return(JError(T["entitymap_emptyheadattributemap"]));
                    }
                    //删除原有的
                    _entityMapDeleter.DeleteById(headEntityMap.EntityMapId);
                    _entityMapCreater.Create(headEntityMap);
                    _attributeMapCreater.CreateMany(headAttributeMap);
                    //单据体
                    if (model.ChildAttributeMap.NotEmpty() && !model.ChildSourceEntityId.Equals(Guid.Empty) && !model.ChildTargetEntityId.Equals(Guid.Empty))
                    {
                        childEntityMap                   = childEntityMap ?? new EntityMap();
                        childEntityMap.EntityMapId       = childEntityMap != null ? childEntityMap.EntityMapId : Guid.NewGuid();
                        childEntityMap.ComponentState    = childEntityMap != null ? childEntityMap.ComponentState : 0;
                        childEntityMap.SolutionId        = childEntityMap != null ? childEntityMap.SolutionId : SolutionId.Value;
                        childEntityMap.OrganizationId    = CurrentUser.OrganizationId;
                        childEntityMap.CreatedBy         = CurrentUser.SystemUserId;
                        childEntityMap.CreatedOn         = DateTime.Now;
                        childEntityMap.SourceEntityId    = childEntityMap != null ? childEntityMap.SourceEntityId : model.ChildSourceEntityId;
                        childEntityMap.TargetEntityId    = childEntityMap != null ? childEntityMap.TargetEntityId : model.ChildTargetEntityId;
                        childEntityMap.RelationShipName  = childEntityMap != null ? childEntityMap.RelationShipName : model.ChildRelationShipName;
                        childEntityMap.ParentEntityMapId = headEntityMap.EntityMapId;
                        childEntityMap.StateCode         = childEntityMap != null ? childEntityMap.StateCode : RecordState.Enabled;
                        var childAttributeMap = new List <AttributeMap>();
                        foreach (var item in model.ChildAttributeMap)
                        {
                            if (!item.SourceAttributeId.Equals(Guid.Empty))
                            {
                                var attrMapTable = new AttributeMap
                                {
                                    AttributeMapId    = Guid.NewGuid(),
                                    CanChange         = item.CanChange,
                                    EntityMapId       = childEntityMap.EntityMapId,
                                    TargetAttributeId = item.TargetAttributeId,
                                    SourceAttributeId = item.SourceAttributeId
                                };
                                childAttributeMap.Add(attrMapTable);
                            }
                        }
                        if (childAttributeMap.IsEmpty())
                        {
                            return(JError(T["entitymap_emptychildattributemap"]));
                        }
                        //删除原有的
                        if (childEntityMap != null)
                        {
                            _entityMapDeleter.DeleteById(childEntityMap.EntityMapId);
                        }
                        _entityMapCreater.Create(childEntityMap);
                        _attributeMapCreater.CreateMany(childAttributeMap);
                    }
                }

                return(UpdateSuccess());
            }
            return(UpdateFailure(GetModelErrors()));
        }
Example #4
0
        public IActionResult CreateEntityMap(EditEntityMapModel model)
        {
            if (ModelState.IsValid)
            {
                //已存在的单据头映射
                var headEntityMap = _entityMapFinder.Find(model.SourceEntityId, model.EntityId);
                if (headEntityMap != null)
                {
                    return(JError(T["entitymap_duplicated"]));
                }
                //已存在的单据体映射
                if (model.ChildAttributeMap.NotEmpty() && !model.ChildSourceEntityId.Equals(Guid.Empty) && !model.ChildTargetEntityId.Equals(Guid.Empty))
                {
                    var childEntityMap = _entityMapFinder.Find(model.ChildSourceEntityId, model.ChildTargetEntityId);
                    if (childEntityMap != null)
                    {
                        return(JError(T["entitymap_duplicated"]));
                    }
                }
                var id = Guid.NewGuid();
                //单据头
                if (model.HeadAttributeMap.NotEmpty())
                {
                    var entMapTable = new EntityMap
                    {
                        ComponentState   = 0,
                        SolutionId       = SolutionId.Value,
                        OrganizationId   = CurrentUser.OrganizationId,
                        CreatedBy        = CurrentUser.SystemUserId,
                        CreatedOn        = DateTime.Now,
                        EntityMapId      = id,
                        SourceEntityId   = model.SourceEntityId,
                        TargetEntityId   = model.EntityId,
                        RelationShipName = model.RelationShipName,
                        MapType          = model.MapType,
                        StateCode        = RecordState.Enabled
                    };
                    var headAttributeMap = new List <AttributeMap>();
                    foreach (var item in model.HeadAttributeMap)
                    {
                        if (!item.SourceAttributeId.Equals(Guid.Empty))
                        {
                            var attributeMap = new AttributeMap
                            {
                                AttributeMapId    = Guid.NewGuid(),
                                CanChange         = item.CanChange,
                                EntityMapId       = entMapTable.EntityMapId,
                                TargetAttributeId = item.TargetAttributeId,
                                SourceAttributeId = item.SourceAttributeId
                            };
                            if (model.HeadControlAttributeMap.NotEmpty())
                            {
                                var controlAttrMap = model.HeadControlAttributeMap.Find(n => n.SourceAttributeId == item.SourceAttributeId);
                                if (controlAttrMap != null)
                                {
                                    attributeMap.RemainAttributeId = controlAttrMap.RemainAttributeId;
                                    attributeMap.ClosedAttributeId = controlAttrMap.ClosedAttributeId;
                                }
                            }
                            headAttributeMap.Add(attributeMap);
                        }
                    }
                    if (headAttributeMap.IsEmpty())
                    {
                        return(JError(T["entitymap_emptyheadattributemap"]));
                    }
                    _entityMapCreater.Create(entMapTable);
                    _attributeMapCreater.CreateMany(headAttributeMap);
                    //单据体
                    if (model.ChildAttributeMap.NotEmpty() && !model.ChildSourceEntityId.Equals(Guid.Empty) && !model.ChildTargetEntityId.Equals(Guid.Empty))
                    {
                        var childEntityMap = new EntityMap
                        {
                            ComponentState    = 0,
                            SolutionId        = SolutionId.Value,
                            OrganizationId    = CurrentUser.OrganizationId,
                            CreatedBy         = CurrentUser.SystemUserId,
                            CreatedOn         = DateTime.Now,
                            EntityMapId       = Guid.NewGuid(),
                            SourceEntityId    = model.ChildSourceEntityId,
                            TargetEntityId    = model.ChildTargetEntityId,
                            RelationShipName  = model.ChildRelationShipName,
                            ParentEntityMapId = entMapTable.EntityMapId,
                            MapType           = model.MapType,
                            StateCode         = RecordState.Enabled
                        };
                        var childAttributeMap = new List <AttributeMap>();
                        foreach (var item in model.ChildAttributeMap)
                        {
                            if (!item.SourceAttributeId.Equals(Guid.Empty))
                            {
                                var attributeMap = new AttributeMap
                                {
                                    AttributeMapId    = Guid.NewGuid(),
                                    CanChange         = item.CanChange,
                                    EntityMapId       = childEntityMap.EntityMapId,
                                    TargetAttributeId = item.TargetAttributeId,
                                    SourceAttributeId = item.SourceAttributeId
                                };
                                if (model.ChildControlAttributeMap.NotEmpty())
                                {
                                    var controlAttrMap = model.ChildControlAttributeMap.Find(n => n.SourceAttributeId == item.SourceAttributeId);
                                    if (controlAttrMap != null)
                                    {
                                        attributeMap.RemainAttributeId = controlAttrMap.RemainAttributeId;
                                        attributeMap.ClosedAttributeId = controlAttrMap.ClosedAttributeId;
                                    }
                                }
                                childAttributeMap.Add(attributeMap);
                            }
                        }
                        if (childAttributeMap.IsEmpty())
                        {
                            return(JError(T["entitymap_emptychildattributemap"]));
                        }
                        _entityMapCreater.Create(childEntityMap);
                        _attributeMapCreater.CreateMany(childAttributeMap);
                    }
                }

                return(CreateSuccess(new { id = id }));
            }
            return(CreateFailure(GetModelErrors()));
        }