protected override void BeforeSave(S_C_ScheduleDefine entity, bool isNew)
 {
     if (isNew)
     {
         var mode          = this.GetEntityByID <S_C_Mode>(entity.ModeID);
         var wbsStructRoot = mode.S_C_WBSStruct.FirstOrDefault(c => String.IsNullOrEmpty(c.ParentID));
         foreach (var item in mode.S_C_WBSStruct.OrderBy(c => c.FullID).ToList())
         {
             var node = new S_C_ScheduleDefine_Nodes();
             node.StructInfoID = item.ID;
             node.ID           = Formula.FormulaHelper.CreateGuid();
             node.Name         = item.Name;
             node.NodeType     = item.NodeType;
             node.SortIndex    = item.SortIndex;
             node.FullID       = item.FullID;
             node.ParentID     = item.ParentID;
             node.StructInfoID = item.ID;
             node.Code         = item.Code;
             node.TaskType     = item.TaskType;
             node.IsDynmanic   = item.IsDynmanic;
             node.IsEnum       = item.IsEnum;
             node.Visible      = "1";
             entity.S_C_ScheduleDefine_Nodes.Add(node);
         }
         entity.ImportProject      = false;
         entity.ImportTaskTemplate = false;
         entity.ImportBid          = false;
         entity.ImportBOM          = false;
         entity.ImportQBS          = false;
         entity.ImportExcel        = false;
     }
     entity.SetAttrColDefine();
 }
        public JsonResult AddDefineNodes(string NodeID, string ParentID)
        {
            var node = this.GetEntityByID <S_C_ScheduleDefine_Nodes>(ParentID);

            if (node == null)
            {
                throw new Formula.Exceptions.BusinessValidationException("没有找到父节点,无法新增节点");
            }
            var structNode = this.GetEntityByID <S_C_WBSStruct>(NodeID);

            if (structNode == null)
            {
                throw new Formula.Exceptions.BusinessValidationException("没有找到WBS结构定义节点");
            }

            var defineNode = new S_C_ScheduleDefine_Nodes();

            defineNode.ID           = Formula.FormulaHelper.CreateGuid();
            defineNode.NodeType     = structNode.NodeType;
            defineNode.Name         = structNode.Name;
            defineNode.Code         = structNode.Code;
            defineNode.FullID       = structNode.FullID;
            defineNode.StructInfoID = structNode.ID;
            defineNode.ParentID     = structNode.ParentID;
            defineNode.TaskType     = structNode.TaskType;
            defineNode.SortIndex    = structNode.SortIndex;
            defineNode.IsDynmanic   = structNode.IsDynmanic;
            defineNode.IsEnum       = structNode.IsEnum;
            defineNode.DefineID     = node.DefineID;
            defineNode.Visible      = "1";
            this.entities.Set <S_C_ScheduleDefine_Nodes>().Add(defineNode);
            foreach (var item in structNode.AllChildren)
            {
                var child = new S_C_ScheduleDefine_Nodes();
                child.ID           = Formula.FormulaHelper.CreateGuid();
                child.NodeType     = item.NodeType;
                child.Name         = item.Name;
                child.Code         = item.Code;
                child.FullID       = item.FullID;
                child.StructInfoID = item.ID;
                child.ParentID     = item.ParentID;
                child.TaskType     = item.TaskType;
                child.SortIndex    = item.SortIndex;
                child.IsDynmanic   = item.IsDynmanic;
                child.IsEnum       = item.IsEnum;
                child.DefineID     = node.DefineID;
                child.Visible      = "1";
                this.entities.Set <S_C_ScheduleDefine_Nodes>().Add(child);
            }
            this.entities.SaveChanges();
            return(Json(""));
        }