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