public IActionResult Setting(Guid belongToId) { var selectedFields = _InterfaceConditionRepository.GetInterfaceConditionByBelongToId(belongToId); ViewData["MetaFields"] = _metaFieldRepository.GetListUnDeletedByMetaObjectId(CurrentMetaObjectId); ViewData["Id"] = belongToId; return(View(selectedFields)); }
public Result AddNode(Guid brotherNodeId, InterfaceCondition entity) { return(TransactionHelper.Transaction(() => { Guid parentId = brotherNodeId; //如果兄弟节点!=空,说明当前树有值。反之,则构建新树 if (parentId != Guid.Empty) { //判断是否有树存在 List <InterfaceCondition> conditionListExist = _InterfaceConditionRepository.GetInterfaceConditionByBelongToId(entity.BelongToCondition); //查看当前兄弟节点的父节点id InterfaceCondition brotherCondition = conditionListExist.FirstOrDefault(t => t.Id == brotherNodeId); parentId = brotherCondition.ParentId; //拿到父节点的信息 InterfaceCondition parentCondition = conditionListExist.FirstOrDefault(t => t.Id == parentId); //如果父节点的连接条件和当前新建的条件一致,则不需要新建条件节点,直接附加在已有的条件下面 if (parentCondition == null || parentCondition.ConditionJointType != entity.ConditionJointType) { //先添加一个父节点,然后把兄弟节点的父节点指向新建的父节点 InterfaceCondition newParentCondition = new InterfaceCondition { Id = Guid.NewGuid(), Code = Guid.NewGuid().ToString(), BelongToCondition = entity.BelongToCondition, ParentId = conditionListExist.Count > 0 ? parentId : Guid.Empty, //如果有树,则插入节点的父节点为刚才的兄弟节点的父节点,否则,插入根节点 MetaFieldId = Guid.Empty, //连接节点没有field MetaFieldShortCode = "-1", ConditionType = entity.ConditionType, ConditionJointType = entity.ConditionJointType, Name = ((ConditionJointTypeEnum)entity.ConditionJointType).GetDescription(), ConditionValue = "-1", ConditionValueType = -1, ConditionNodeType = (int)NodeTypeEnum.Joint, CloudApplicationtId = entity.CloudApplicationtId, MetaObjectId = entity.MetaObjectId }; _InterfaceConditionRepository.Add(newParentCondition); //将兄弟节点的父节点指向新插入的节点 brotherCondition.ParentId = newParentCondition.Id; _InterfaceConditionRepository.Update(brotherCondition); //重新赋值parentId parentId = newParentCondition.Id; } } //检验是否没有条件节点 //if (parentId == Guid.Empty) //{ // if (_InterfaceConditionRepository.GetById(parentId) != null) // { // return Result.Error("已经存在条件节点,请查证后操作!"); // } //} //新增节点 MetaField metaField = _metaFieldRepository.GetById(entity.MetaFieldId); InterfaceCondition newCondition = new InterfaceCondition { Id = Guid.NewGuid(), Code = Guid.NewGuid().ToString(), BelongToCondition = entity.BelongToCondition, ParentId = parentId, MetaFieldId = entity.MetaFieldId, MetaFieldShortCode = metaField.ShortCode, ConditionType = entity.ConditionType, Name = $"{metaField.ShortCode} {((ConditionTypeEnum)entity.ConditionType).GetDescription()} {entity.ConditionValue}", ConditionValue = entity.ConditionValue, ConditionValueType = entity.ConditionValueType, ConditionNodeType = (int)NodeTypeEnum.Condition, CloudApplicationtId = entity.CloudApplicationtId, MetaObjectId = entity.MetaObjectId }; _InterfaceConditionRepository.Add(newCondition); return Result.Success("保存成功!"); })); }