Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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);
        }