/// <summary> /// Add new state /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task <ResultModel <Guid?> > AddStateToWorkFlowAsync(AddNewStateViewModel model) { Arg.NotNull(model, nameof(AddNewStateViewModel)); var response = new ResultModel <Guid?>(); var workflowRequest = await GetWorkFlowByIdAsync(model.WorkFlowId); if (!workflowRequest.IsSuccess) { return(workflowRequest.Map <Guid?>()); } var workFlow = workflowRequest.Result; var checkDuplicateStateName = workFlow.States.FirstOrDefault(x => x.Name.Equals(model.Name)); if (checkDuplicateStateName != null) { response.Errors.Add(new ErrorModel(nameof(WorkFlowErrorCodes.GRWF_0x104), WorkFlowErrorCodes.GRWF_0x104)); return(response); } var state = WorkFlowMapper.Map(model); if (!workFlow.States.Any()) { state.IsStartState = true; } await _workFlowContext.States.AddAsync(state); var dbRequest = await _workFlowContext.PushAsync(); return(dbRequest.Map <Guid?>(state.Id)); }
/// <summary> /// Map add new state to state entity /// </summary> /// <param name="model"></param> /// <returns></returns> public static State Map(AddNewStateViewModel model) { Arg.NotNull(model, nameof(AddNewStateViewModel)); return(new State { Name = model.Name, WorkFlowId = model.WorkFlowId, Description = model.Description, AdditionalSettings = model.AdditionalSettings.SerializeAsJson() }); }
public async Task <JsonResult> AddStateToWorkFlow([Required] AddNewStateViewModel model) { return(!ModelState.IsValid ? Json(new InvalidParametersResultModel <Guid>().AttachModelState(ModelState)) : await JsonAsync(_workFlowCreatorService.AddStateToWorkFlowAsync(model))); }