public async Task <JsonResult> AddPipeLine([Required] CreatePipeLineViewModel model) { if (!ModelState.IsValid) { return(JsonModelStateErrors()); } var addPipeLineRequest = await _service.AddPipeLineAsync(model); return(Json(addPipeLineRequest)); }
/// <summary> /// Add pipeline /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task <ResultModel <Guid> > AddPipeLineAsync(CreatePipeLineViewModel model) { if (model == null) { return(InvalidParametersResultModel <Guid> .Instance); } WorkFlow workflow = null; var pipeLine = _mapper.Map <PipeLine>(model); if (pipeLine.WorkFlowId.HasValue) { var workFlowRequest = await _workFlowCreatorService.GetWorkFlowByIdAsync(pipeLine.WorkFlowId); if (!workFlowRequest.IsSuccess) { return(new InvalidParametersResultModel <Guid>(PipeLineMessageResult.WORKFLOW_NOT_FOUND)); } workflow = workFlowRequest.Result; } var pipeLineBd = await _context.PipeLines. FirstOrDefaultAsync(x => string.Equals(x.Name.Trim(), pipeLine.Name.Trim(), StringComparison.CurrentCultureIgnoreCase)); if (pipeLineBd != null) { return new ResultModel <Guid> { IsSuccess = false, Errors = new List <IErrorModel> { new ErrorModel { Message = "PipeLine [" + pipeLineBd.Name + "] exist" } } } } ; await _context.PipeLines.AddAsync(pipeLine); var dbResult = await _context.PushAsync(); if (!dbResult.IsSuccess) { return(dbResult.Map <Guid>()); } await AddStageToPipeLineAsync(new AddStageViewModel { PipeLineId = pipeLine.Id, Name = "Start", Term = 1, IsSystem = true }); await AddStageToPipeLineAsync(new AddStageViewModel { PipeLineId = pipeLine.Id, Name = "End", IsSystem = true }); await _notify.SendNotificationAsync(new Notification { Content = $"Add PipeLine {pipeLine?.Name}", Subject = "Info", NotificationTypeId = NotificationType.Info }); if (workflow != null) { await GeneratePipeLineStagesAsync(pipeLine.Id, workflow.States.ToList()); } return(new SuccessResultModel <Guid>(pipeLine.Id)); }