public IActionResult AddVOCProcess([FromBody] ObjectVOCProccess model) { ErrorObject errorObject = new ErrorObject(); FieldErrors error = new FieldErrors(); ResponseMessage rm = new ResponseMessage(); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model != null) { List <FieldErrors> lsterror = ValidateAddOrEdit(model); if (lsterror.Count > 0) { // response validate fail to client rm.Type = VOCProcessConstant.TypeVOC; rm.Title = VOCProcessConstant.TitleValidate; rm.Message = VOCProcessConstant.ErrorValidate; rm.Status = VOCProcessConstant.StatusFail; var field = new { fieldErrors = lsterror }; rm.FieldError = field; return(StatusCode(400, rm)); } else { ErrorObject response = new ErrorObject(); // thêm vào database int result = _iVOCProcessRepository.AddVOCProcess(model, userName); if (result == VOCProcessConstant.AddDuplicateCode) { response.EntityName = VOCProcessConstant.TypeVOC; response.ErrorKey = VOCProcessConstant.ErrorKeyAddDuplicateCode; response.Status = VOCProcessConstant.StatusFail; response.Message = VOCProcessConstant.MessageAddDuplicateCode; return(StatusCode(400, response)); } else if (result == VOCProcessConstant.AddVOCProcessSuccess) { object obj = new { message = VOCProcessConstant.MessageAddSuccess }; return(StatusCode(201, obj)); } else { response = new ErrorObject(); response.EntityName = VOCProcessConstant.TypeVOC; response.ErrorKey = VOCProcessConstant.ErrorKeyAddFail; response.Status = VOCProcessConstant.StatusFail; response.Message = VOCProcessConstant.MessageAddFail; return(StatusCode(400, response)); } } } else { return(BadRequest()); } }
public IActionResult EditVOCProcess([FromBody] ObjectVOCProccess model) { ResponseMessage rm = new ResponseMessage(); FieldErrors error = new FieldErrors(); ErrorObject response = new ErrorObject(); int resultEdit = 0; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model != null) { List <FieldErrors> lsterror = ValidateAddOrEdit(model); if (String.IsNullOrEmpty(model.VOCProcessCode)) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVOCProcessCode; error.Message = VOCProcessConstant.NeedVOCProcessCode; lsterror.Add(error); } if (model.CurrentVersion == null) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVersion; error.Message = VOCProcessConstant.NeedVersion; lsterror.Add(error); } if (lsterror.Count > 0) { // response validate fail to client rm.Type = VOCProcessConstant.TypeVOC; rm.Title = VOCProcessConstant.TitleValidate; rm.Message = VOCProcessConstant.ErrorValidate; rm.Status = VOCProcessConstant.StatusFail; var field = new { fieldErrors = lsterror }; rm.FieldError = field; return(StatusCode(400, rm)); } else { resultEdit = _iVOCProcessRepository.EditVOCProcess(model, userName); if (resultEdit == VOCProcessConstant.EditVOCProcessSuccess) { var obj = new { code = 200, message = VOCProcessConstant.MSEditSuccess }; return(StatusCode(200, obj)); } else { response = new ErrorObject(); response.EntityName = VOCProcessConstant.TypeVOC; response.ErrorKey = VOCProcessConstant.ErrorKeyEditFail; response.Status = VOCProcessConstant.StatusFail; response.Message = VOCProcessConstant.MSEditFail; return(StatusCode(400, response)); } } } return(BadRequest()); }
private List <FieldErrors> ValidateAddOrEdit(ObjectVOCProccess model) { ErrorObject errorObject = new ErrorObject(); FieldErrors error = new FieldErrors(); List <FieldErrors> lsterror = new List <FieldErrors>(); // kiểm tra dữ liệu truyền lên if (string.IsNullOrEmpty(model.VOCProcessCode)) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVOCProcessCode; error.Message = VOCProcessConstant.NullCodeVOCProcess; lsterror.Add(error); } else { //Kiểm tra tính hợp lệ của mã quy trình //-1 Nhỏ hơn 3 ký tự model.VOCProcessCode = model.VOCProcessCode.Replace(" ", string.Empty); if (model.VOCProcessCode.Length < 3) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVOCProcessCode; error.Message = VOCProcessConstant.MinVOCProcessCode; lsterror.Add(error); } Regex rgx = new Regex(@"^[a-zA-Z0-9]+$"); bool checkRegex = rgx.IsMatch(model.VOCProcessCode); if (!checkRegex) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVOCProcessCode; error.Message = VOCProcessConstant.FormatVOCProcessCode; lsterror.Add(error); } } if (string.IsNullOrEmpty(model.VOCProcessName)) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVOCProcessName; error.Message = VOCProcessConstant.NullNameProcessName; lsterror.Add(error); } if (string.IsNullOrEmpty(model.VOCProcessType)) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = VOCProcessConstant.FieldVOCProcessType; error.Message = VOCProcessConstant.NullTypeVOCProcess; lsterror.Add(error); } // Kiểm tra tính hợp lệ các bước của quy trình if (model.objectSteps != null) { //Lấy danh sách bước cha List <TblVocprocessSteps> lstParent = new List <TblVocprocessSteps>(); int runCode = 1; foreach (var item in model.objectSteps) { TblVocprocessSteps stepParent = new TblVocprocessSteps(); item.StepCode = VOCProcessConstant.STEP + runCode; item.ParentCode = VOCProcessConstant.PARENT; stepParent.VocprocessCode = item.VocprocessCode; stepParent.StepCode = item.StepCode; stepParent.ParentCode = item.ParentCode; stepParent.StepName = item.StepName; stepParent.FormId = item.FormId; stepParent.ConditionId = item.ConditionId; stepParent.OrderNum = item.OrderNum; stepParent.Version = item.Version; stepParent.FinishDate = item.FinishDate; stepParent.IsFinish = item.IsFinish; stepParent.InProgress = item.InProgress; stepParent.DurationStepDay = item.DurationStepDay; stepParent.DurationStepHour = item.DurationStepHour; stepParent.DurationStepMinute = item.DurationStepMinute; lstParent.Add(stepParent); //Kiểm tra tất cả các bước con List <TblVocprocessSteps> lstChild = item.stepChilds; if (lstChild != null && lstChild.Count > 0) { //Thêm mã code cho các bước int runCodeChild = 1; foreach (var itemAddCode in lstChild) { itemAddCode.StepCode = VOCProcessConstant.STEP + runCode + "." + runCodeChild++; itemAddCode.ParentCode = item.StepCode; if (String.IsNullOrEmpty(itemAddCode.StepName)) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = itemAddCode.StepCode; error.Message = VOCProcessConstant.NullStepName; lsterror.Add(error); } } foreach (var itemChild in lstChild) { foreach (var itemChildRound2 in lstChild) { if (itemChild.StepCode.Trim() != itemChildRound2.StepCode.Trim()) { if (!String.IsNullOrEmpty(itemChild.StepName) && !String.IsNullOrEmpty(itemChildRound2.StepName)) { if (String.Compare(itemChild.StepName.Trim(), itemChildRound2.StepName.Trim(), true) == 0) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = itemChildRound2.StepCode; error.Message = VOCProcessConstant.DuplicateValidate; lsterror.Add(error); } } } } } } runCode += 1; } if (lstParent != null && lstParent.Count > 0) { //Kiểm tra tên tất cả các bước cha foreach (var item in lstParent) { foreach (var itemRound2 in lstParent) { if (item.StepCode.Trim() != itemRound2.StepCode.Trim()) { if (!String.IsNullOrEmpty(item.StepName) && !String.IsNullOrEmpty(itemRound2.StepName)) { if (String.Compare(item.StepName.Trim(), itemRound2.StepName.Trim(), true) == 0) { error = new FieldErrors(); error.ObjectName = VOCProcessConstant.TypeVOC; error.Field = itemRound2.StepCode; error.Message = VOCProcessConstant.DuplicateValidate; lsterror.Add(error); } } } } } } } return(lsterror); }