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