コード例 #1
0
        public IActionResult Edit(string id, string dataID)
        {
            var entity = this.Manager.DynamicFormManager.Find(id, dataID);

            if (entity == null)
            {
                entity = new Entities.DynamicForm()
                {
                    ID = this.Manager.GenerateMongoID
                };
                var form = this.Manager.FormManager.Find(id);
                this.Manager.DynamicFormManager.Copy(form, entity);
                entity.CurrentNode = entity.Nodes.GetStartNode();
                if (entity.CurrentNode == null)
                {
                    return(this.DisplayResult(Models.Result.CreateFail("缺少开始节点")));
                }
            }
            var result = this.Manager.DynamicFormManager.HasPermit(entity);

            if (result.Success == false)
            {
                return(this.DisplayResult(result));
            }
            this.ViewData["id"]     = id;
            this.ViewData["DataID"] = entity.ID;
            return(this.View(entity));
        }
コード例 #2
0
ファイル: DynamicFormManager.cs プロジェクト: war-man/Hunter1
 public void Copy(Entities.Form source, Entities.DynamicForm destination)
 {
     destination.Html  = (source?.Html) ?? String.Empty;
     destination.Nodes = AutoMapper.Mapper.Map <List <Entities.DynamicForm.Node> >(source.Nodes);
     destination.Lines = AutoMapper.Mapper.Map <List <Entities.DynamicForm.Line> >(source.Lines);
     destination.Areas = AutoMapper.Mapper.Map <List <Entities.DynamicForm.Area> >(source.Areas);
 }
コード例 #3
0
ファイル: DynamicFormManager.cs プロジェクト: war-man/Hunter1
 public Models.Result HasPermit(Entities.DynamicForm entity)
 {
     if (this.ApplicationUser.HasPermit(entity.CurrentNode.Permits) == false)
     {
         return(Models.Result.CreateForbidden());
     }
     return(Models.Result.Create());
 }
コード例 #4
0
        public Models.Result InsertFlowTrace(Entities.DynamicForm entity, string lineID)
        {
            var trace = new Entities.FlowTrace()
            {
                ID          = this.GenerateMongoID,
                UserID      = this.ApplicationUser?.ID,
                UserName    = this.ApplicationUser?.Name,
                DateTime    = DateTime.Now,
                ReferenceID = entity?.ID,
                Data        = entity?.Data,
                NodeID      = entity?.CurrentNode?.ID,
                LineID      = lineID
            };

            this.Collection.InsertOne(trace);
            return(Models.Result.Create());
        }
コード例 #5
0
ファイル: DynamicFormManager.cs プロジェクト: war-man/Hunter1
        public Models.Result Create(string formID, string dataID)
        {
            var form   = this.FormManager.Find(formID);
            var entity = new Entities.DynamicForm()
            {
                ID = dataID, Data = new Dictionary <string, object>()
            };

            this.Copy(form, entity);
            entity.CurrentNode     = entity.Nodes.GetStartNode();
            entity.CreatedUserID   = this.ApplicationUser.ID;
            entity.CreatedUserName = this.ApplicationUser.Name;
            var result = this.HasPermit(entity);

            if (result.Success == false)
            {
                return(result);
            }
            this.DynamicForms(formID).ReplaceOne(m => m.ID == dataID, entity, UpdateOptions);
            return(Models.Result.CreateDataResult(entity));
        }