Esempio n. 1
0
        //[ValidateAntiForgeryToken]
        public IActionResult EditWorkFlow([FromBody] EditWorkFlowModel model)
        {
            if (model.StepData.IsEmpty())
            {
                ModelState.AddModelError("", T["workflow_step_empty"]);
            }
            if (ModelState.IsValid)
            {
                model.StepData = model.StepData.UrlDecode();
                List <WorkFlowStep> steps = new List <WorkFlowStep>();
                steps = steps.DeserializeFromJson(model.StepData);
                if (steps.IsEmpty())
                {
                    ModelState.AddModelError("", T["workflow_step_empty"]);
                }
                if (ModelState.IsValid)
                {
                    var entity = _workFlowFinder.FindById(model.WorkFlowId);
                    model.EntityId = entity.EntityId;
                    model.CopyTo(entity);

                    _workFlowUpdater.Update(entity);
                    //steps
                    var orginalSteps = _workFlowStepService.Query(n => n.Where(f => f.WorkFlowId == model.WorkFlowId).Sort(s => s.SortAscending(f => f.StepOrder)));
                    foreach (var item in steps)
                    {
                        item.Conditions = item.Conditions.UrlDecode();
                        var old = orginalSteps.Find(n => n.WorkFlowStepId == item.WorkFlowStepId);
                        if (old == null)
                        {
                            item.WorkFlowId = entity.WorkFlowId;
                            _workFlowStepService.Create(item);
                        }
                        else
                        {
                            _workFlowStepService.Update(item);
                            orginalSteps.Remove(old);
                        }
                    }
                    if (orginalSteps.NotEmpty())
                    {
                        var lostid = orginalSteps.Select(n => n.WorkFlowStepId).ToArray();
                        _workFlowStepService.DeleteById(lostid);
                    }

                    return(UpdateSuccess());
                }
            }
            return(JError(GetModelErrors()));
        }
Esempio n. 2
0
        public IActionResult EditWorkFlow(Guid id)
        {
            if (id.Equals(Guid.Empty))
            {
                return(NotFound());
            }
            EditWorkFlowModel model = new EditWorkFlowModel();
            var entity = _workFlowFinder.FindById(id);

            if (entity == null)
            {
                return(NotFound());
            }
            entity.CopyTo(model);
            model.Steps       = _workFlowStepService.Query(n => n.Where(f => f.WorkFlowId == id).Sort(s => s.SortAscending(f => f.StepOrder)));
            model.StepData    = model.Steps.SerializeToJson();
            model.EntityMetas = _entityFinder.FindById(entity.EntityId);

            return(View(model));
        }