예제 #1
0
 /// <summary>
 /// Clears the warnings and errors.
 /// </summary>
 public void ClearWarningsAndErrors()
 {
     BusinessWarnings.Clear();
     FieldWarnings.Clear();
     BusinessErrors.Clear();
     FieldErrors.Clear();
 }
        public void AddFieldError(string fieldName, string fieldMessage)
        {
            if (string.IsNullOrWhiteSpace(fieldName))
            {
                throw new ArgumentException("Empty field name");
            }

            if (string.IsNullOrWhiteSpace(fieldMessage))
            {
                throw new ArgumentException("Empty field message");
            }

            // appending error to existing one, if field already contains a message
            var existingFieldError = FieldErrors.FirstOrDefault(e => e.FieldName.Equals(fieldName));

            if (existingFieldError == null)
            {
                FieldErrors.Add(new FieldError {
                    FieldName = fieldName, FieldMessage = fieldMessage
                });
            }
            else
            {
                existingFieldError.FieldMessage = $"{existingFieldError.FieldMessage}. {fieldMessage}";
            }

            IsError = true;
        }
예제 #3
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());
            }
        }
예제 #4
0
 /// <summary>
 /// Adds the field error.
 /// </summary>
 /// <param name="fieldName">Name of the field.</param>
 /// <param name="message">The message.</param>
 /// <returns></returns>
 public void AddFieldError(string fieldName, string message)
 {
     Success     = false;
     FieldErrors = FieldErrors.Concat(new[] { new FieldError()
                                              {
                                                  FieldName = fieldName, ErrorMessage = message
                                              } }).ToArray();
 }
예제 #5
0
        public object AddCategory([FromBody] CategoryChildren tblCategory)
        {
            ErrorObject     response = new ErrorObject();
            ResponseMessage rm       = new ResponseMessage();
            FieldErrors     error    = new FieldErrors();
            object          objCate  = new TblCategory();
            string          userName = User.Claims.FirstOrDefault().Value;

            tblCategory.CreateBy = userName;
            if (string.IsNullOrEmpty(tblCategory.CategoryName))
            {
                List <FieldErrors> lsterror = new List <FieldErrors>();
                if (string.IsNullOrEmpty(tblCategory.CategoryName))
                {
                    error.objectName = CategoryConstant.TypeCategory;
                    error.field      = CategoryConstant.entityName;
                    error.message    = CategoryConstant.Message;
                    lsterror.Add(error);
                }
                rm.Title   = CategoryConstant.Title;
                rm.Message = CategoryConstant.MessageError;
                rm.Status  = CategoryConstant.statusError;
                var field = new { fieldErrors = lsterror };
                rm.fieldError = field;
                return(StatusCode(400, rm));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            object objCategory = _categoryRepository.AddCategory(tblCategory);
            int    code        = Convert.ToInt32(objCategory.GetType().GetProperty(CategoryConstant.Code).GetValue(objCategory, null));
            string CateCode    = objCategory.GetType().GetProperty(CategoryConstant.CategoryCode).GetValue(objCategory, null).ToString();


            if (code == 0)
            {
                response.title      = CategoryConstant.titleDuplicate;
                response.entityName = CategoryConstant.entityName;
                response.errorKey   = CategoryConstant.errorKey;
                response.status     = CategoryConstant.statusError;
                response.message    = CategoryConstant.MessageDulicateCategoryName;
                return(StatusCode(400, response));
            }
            else if (code == 1)
            {
                if (!string.IsNullOrEmpty(CateCode))
                {
                    objCate = _categoryRepository.GetObjectCategory(CateCode);
                }
                var responeNew = new { TblCategory = objCate };
                return(StatusCode(201, responeNew));
            }
            else
            {
                return(StatusCode(400));
            }
        }
예제 #6
0
 public JsonResultEntry AddFieldError(string fieldName, string message)
 {
     Success     = false;
     FieldErrors = FieldErrors.Concat(new[] { new FieldError()
                                              {
                                                  FieldName = fieldName, ErrorMessage = message
                                              } }).ToArray();
     return(this);
 }
        public ActionResult FailureSubmit(FormCollection values)
        {
            var errors = new FieldErrors();

            foreach (var key in values.Keys)
            {
                errors.Add(new FieldError(key.ToString(), "Test error for " + key.ToString()));
            }

            return(this.FormPanel("Error is emulated", errors));
        }
        public ActionResult FailureSubmit(FormCollection values)
        {
            var errors = new FieldErrors();

            foreach (var key in values.Keys)
            {
                errors.Add(new FieldError(key.ToString(), "Test error for " + key.ToString()));
            }

            return this.FormPanel("Error is emulated", errors);
        }
예제 #9
0
        public ValidationError AddError(string field, string error)
        {
            string fieldCamel = char.ToLowerInvariant(field[0]) + field.Substring(1);

            if (FieldErrors.TryGetValue(fieldCamel, out IList <string> list))
            {
                list.Add(error);
            }
            else
            {
                FieldErrors.Add(fieldCamel, new List <string> {
                    error
                });
            }
            return(this);
        }
예제 #10
0
        public async Task <object> GetListUserSearchVersion(string VOCProcessCode)
        {
            ResponseMessage    rm       = new ResponseMessage();
            FieldErrors        error    = new FieldErrors();
            List <FieldErrors> lsterror = new List <FieldErrors>();

            if (string.IsNullOrEmpty(VOCProcessCode))
            {
                error            = new FieldErrors();
                error.ObjectName = VOCProcessConstant.TypeVOC;
                error.Field      = VOCProcessConstant.FieldVOCProcessCode;
                error.Message    = VOCProcessConstant.NeedVOCProcessCode;
                lsterror.Add(error);
            }
            VOCProcessCode = string.IsNullOrEmpty(VOCProcessCode) ? "" : VOCProcessCode.Trim();
            var data = await _iVOCProcessRepository.GetListUserSearchVersion(VOCProcessCode, _organizationCode);

            return(data);
        }
예제 #11
0
 public BindingErrorModel(ModelStateDictionary modelState)
 {
     foreach (KeyValuePair <string, ModelStateEntry> v in modelState)
     {
         if (v.Key != "")
         {
             string key = v.Key[0].ToString().ToLower() + v.Key.Substring(1);
             FieldErrors.Add(key, new List <string>());
             foreach (ModelError error in v.Value.Errors)
             {
                 FieldErrors[key].Add(error.ErrorMessage);
             }
         }
         else
         {
             foreach (ModelError error in v.Value.Errors)
             {
                 GlobalErrors.Add(error.ErrorMessage);
             }
         }
     }
 }
        public static void ConfigureModelStateHandler(this IServiceCollection services)
        {
            services.AddMvc()
            .ConfigureApiBehaviorOptions(options =>
            {
                //options.SuppressModelStateInvalidFilter = true;
                options.InvalidModelStateResponseFactory = actionContext =>
                {
                    var modelState = actionContext.ModelState;

                    var fieldErrorsList = new List <FieldError>();
                    foreach (var model in modelState)
                    {
                        foreach (var error in model.Value.Errors)
                        {
                            fieldErrorsList.Add(new FieldError(model.Key, error.ErrorMessage));
                        }
                    }
                    var fieldErrors = new FieldErrors(fieldErrorsList);
                    return(new BadRequestObjectResult(fieldErrors));
                };
            });
        }
예제 #13
0
        public IActionResult AddFormCimsList(UpdateFormDTO attributesForm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ErrorObject     response = new ErrorObject();
            ResponseMessage rm       = new ResponseMessage();
            FieldErrors     error    = new FieldErrors();
            string          userName = User.Claims.FirstOrDefault().Value;

            attributesForm.tblCimsForm.CreateBy   = userName;
            attributesForm.tblCimsForm.CreateDate = DateTime.Now;
            attributesForm.tblCimsForm.ChildCode  = AttributeConstant.ListForm;
            var lstAttribute       = _attributeRepository.GetAllAttributeRequired(attributesForm.tblCimsForm.MenuCode);
            var requiredAttributes = lstAttribute.Where(x => !attributesForm.tblCimsattributeForm.Where(c => c.AttributeCode == x.AttributeCode).Select(c => c.AttributeCode).Contains(x.AttributeCode)).Select(x => new InfoAttribute()
            {
                AttributeLabel = x.AttributeLabel
            }).ToList();

            if (requiredAttributes.Count > 0)
            {
                return(StatusCode(400, AttributesMessages.MS0004));
            }
            var code = _attributeRepository.AddFormCims(attributesForm);

            if (code > 0)
            {
                return(StatusCode(201, AttributesMessages.MS0003));
            }
            else
            {
                return(StatusCode(400, AttributesMessages.MS00011));
            }
        }
예제 #14
0
 public object AssigneeVOCProcess(string textSearch, string vocProcessCode, int version, string stepCode)
 {
     try
     {
         textSearch     = string.IsNullOrEmpty(textSearch) ? "" : textSearch.Trim();
         vocProcessCode = string.IsNullOrEmpty(vocProcessCode) ? "" : vocProcessCode.Trim();
         stepCode       = string.IsNullOrEmpty(stepCode) ? "" : stepCode.Trim();
         if (!string.IsNullOrEmpty(vocProcessCode))
         {
             if (version <= 0)
             {
                 ResponseMessage rm    = new ResponseMessage();
                 FieldErrors     error = new FieldErrors();
                 error.ObjectName = VOCProcessConstant.TypeVOC;
                 error.Field      = VOCProcessConstant.FieldVersion;
                 error.Message    = VOCProcessConstant.NeedVersion;
                 List <FieldErrors> lsterror = new List <FieldErrors>();
                 lsterror.Add(error);
                 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));
             }
         }
         var response = _iVOCProcessRepository.GetUserAssignee(textSearch, _organizationCode, vocProcessCode, version, stepCode);
         return(response);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(BadRequest());
     }
 }
예제 #15
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());
        }
예제 #16
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">name of the error</param>
 /// <param name="description">description fo the error</param>
 public Error(string name, string description)
 {
     Name        = name;
     Description = description;
     FieldErrors = new FieldErrors();
 }
예제 #17
0
 /// <summary>
 /// Log an error against a specific field
 /// </summary>
 /// <param name="fieldName"></param>
 /// <param name="errorMessage"></param>
 public void AddFieldError(string fieldName, string errorMessage)
 {
     FieldErrors.Add(new FieldError(fieldName, errorMessage));
     Success = false;
 }
예제 #18
0
        public IActionResult SwitchStatus([FromBody] VOCProcessStepsViewModel step)
        {
            ResponseMessage    rm       = new ResponseMessage();
            FieldErrors        error    = new FieldErrors();
            List <FieldErrors> lsterror = new List <FieldErrors>();
            ErrorObject        response = new ErrorObject();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (step != null)
            {
                if (String.IsNullOrEmpty(step.VOCProcessCode))
                {
                    response            = new ErrorObject();
                    response.EntityName = VOCProcessConstant.TypeVOC;
                    response.ErrorKey   = VOCProcessConstant.ErrorKeyMissCodeVOC;
                    response.Status     = VOCProcessConstant.StatusFail;
                    response.Message    = VOCProcessConstant.MSSwitchStatusMissCodeVOC;
                    return(StatusCode(400, response));
                }
                if (step.IsActive.HasValue)
                {
                    int switchStatus = _iVOCProcessRepository.SwitchStatus(step);

                    if (switchStatus == VOCProcessConstant.SwitchStatusSuccess)
                    {
                        object obj = new { message = VOCProcessConstant.MSSwitchStatusSuccess };
                        return(StatusCode(200, obj));
                    }
                    else if (switchStatus == VOCProcessConstant.SwitchStatusNotChange)
                    {
                        response            = new ErrorObject();
                        response.EntityName = VOCProcessConstant.TypeVOC;
                        response.ErrorKey   = VOCProcessConstant.ErrorKeyMSSwitchStatusNotChange;
                        response.Status     = VOCProcessConstant.StatusFail;
                        response.Message    = VOCProcessConstant.MSSwitchStatusNotChange;
                        return(StatusCode(400, response));
                    }
                    else if (switchStatus == VOCProcessConstant.SwitchStatusNotFound)
                    {
                        response            = new ErrorObject();
                        response.EntityName = VOCProcessConstant.TypeVOC;
                        response.ErrorKey   = VOCProcessConstant.ErrorKeyMSSwitchStatusNotFound;
                        response.Status     = VOCProcessConstant.StatusFail;
                        response.Message    = VOCProcessConstant.MSSwitchStatusNotFound;
                        return(StatusCode(400, response));
                    }
                    else
                    {
                        response            = new ErrorObject();
                        response.EntityName = VOCProcessConstant.TypeVOC;
                        response.ErrorKey   = VOCProcessConstant.ErrorKeySwitchStatusFail;
                        response.Status     = VOCProcessConstant.StatusFail;
                        response.Message    = VOCProcessConstant.MSSwitchStatusFail;
                        return(StatusCode(400, response));
                    }
                }
                else
                {
                    error            = new FieldErrors();
                    error.ObjectName = VOCProcessConstant.TypeVOC;
                    error.Field      = VOCProcessConstant.FieldIsActive;
                    error.Message    = VOCProcessConstant.MSNeedStatus;
                    lsterror.Add(error);

                    // 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
            {
                return(BadRequest());
            }
        }
예제 #19
0
    public static async Task <object?> ExecuteFieldAsync(
        IExecutorContext context,
        ObjectDefinition objectDefinition,
        object?objectValue,
        IReadOnlyCollection <FieldSelection> fields,
        TypeBase fieldType,
        NodePath path)
    {
        if (fields == null)
        {
            throw new ArgumentNullException(nameof(fields));
        }
        if (fieldType == null)
        {
            throw new ArgumentNullException(nameof(fieldType));
        }

        var    schema         = context.Schema;
        var    fieldSelection = fields.First();
        var    fieldName      = fieldSelection.Name;
        var    field          = schema.GetField(objectDefinition.Name, fieldName);
        object?completedValue = null;

        if (field is null)
        {
            return(completedValue);
        }

        var argumentValues = ArgumentCoercion.CoerceArgumentValues(
            schema,
            objectDefinition,
            fieldSelection,
            context.CoercedVariableValues);

        try
        {
            var resolver = schema.GetResolver(objectDefinition.Name, fieldName);

            if (resolver == null)
            {
                throw new QueryExecutionException(
                          $"Could not get resolver for {objectDefinition.Name}.{fieldName}",
                          path);
            }

            var resolverContext =
                new ResolverContext(
                    objectDefinition,
                    objectValue,
                    field,
                    fieldSelection,
                    fields,
                    argumentValues,
                    path,
                    context);

            // begin resolve
            await context.ExtensionsRunner.BeginResolveAsync(resolverContext);

            var resultTask = resolver(resolverContext);

            IResolverResult result;
            if (resultTask.IsCompletedSuccessfully)
            {
                result = resultTask.Result;
            }
            else
            {
                result = await resultTask;
            }

            await context.ExtensionsRunner.EndResolveAsync(resolverContext, result);

            // end resolve

            // begin complete
            var completedValueTask = result.CompleteValueAsync(resolverContext);
            if (completedValueTask.IsCompletedSuccessfully)
            {
                completedValue = completedValueTask.Result;
            }
            else
            {
                completedValue = await completedValueTask;
            }
            // end complete

            return(completedValue);
        }
        catch (Exception e)
        {
            return(FieldErrors.Handle(
                       context,
                       objectDefinition,
                       fieldName,
                       fieldType,
                       fieldSelection,
                       completedValue,
                       e,
                       path));
        }
    }
예제 #20
0
        public IActionResult AddAttribute([FromBody] InfoAttribute Vocattributes)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            object          attributes = new TblAttributes();
            ErrorObject     response   = new ErrorObject();
            ResponseMessage rm         = new ResponseMessage();
            FieldErrors     error      = new FieldErrors();
            string          userName   = User.Claims.FirstOrDefault().Value;

            Vocattributes.CreateBy = userName;

            if (string.IsNullOrEmpty(Vocattributes.AttributeLabel) || string.IsNullOrEmpty(Vocattributes.AttributeType) || string.IsNullOrEmpty(Vocattributes.DataType))
            {
                List <FieldErrors> lsterror = new List <FieldErrors>();
                if (string.IsNullOrEmpty(Vocattributes.AttributeLabel))
                {
                    error.objectName = AttributeConstant.TypeAttribute;
                    error.field      = AttributeConstant.entityName;
                    error.message    = AttributeConstant.Message;
                    lsterror.Add(error);
                }
                if (string.IsNullOrEmpty(Vocattributes.AttributeType))
                {
                    error.objectName = AttributeConstant.TypeAttribute;
                    error.field      = AttributeConstant.entityType;
                    error.message    = AttributeConstant.Message;
                    lsterror.Add(error);
                }
                if (string.IsNullOrEmpty(Vocattributes.DataType))
                {
                    error.objectName = AttributeConstant.TypeAttribute;
                    error.field      = AttributeConstant.entityDataType;
                    error.message    = AttributeConstant.Message;
                    lsterror.Add(error);
                }
                rm.Title   = AttributeConstant.Title;
                rm.Message = AttributeConstant.MessageError;
                rm.Status  = AttributeConstant.statusError;
                var field = new { fieldErrors = lsterror };
                rm.fieldError = field;
                return(StatusCode(400, rm));
            }
            object objAttributes = _attributeRepository.AddAttribute(Vocattributes);
            int    code          = Convert.ToInt32(objAttributes.GetType().GetProperty(AttributeConstant.Code).GetValue(objAttributes, null));
            int    Id            = Convert.ToInt32(objAttributes.GetType().GetProperty(AttributeConstant.Id).GetValue(objAttributes, null));

            if (code == 1)
            {
                if (Id > 0)
                {
                    attributes = _attributeRepository.GetObjectAttributes(Id);
                }
                //_attributeRepository.SetStringCache(_organizationCode + AttributeConstant.Attributes_GetListAttributes, _attributeRepository.GetListAttributes(Vocattributes.ModuleParent));
                //_attributeRepository.GetStringCache(AttributeConstant.Attributes_GetListAttributes);
                var responeNew = new { TblAttributes = attributes };
                return(StatusCode(201, Newtonsoft.Json.JsonConvert.SerializeObject(responeNew)));
            }
            else if (code == 0)
            {
                response.title      = AttributeConstant.titleDuplicate;
                response.entityName = AttributeConstant.entityName;
                response.errorKey   = AttributeConstant.errorKey;
                response.status     = AttributeConstant.statusError;
                response.message    = AttributeConstant.MessageDulicateAttributename;
                return(StatusCode(400, response));
            }
            else
            {
                return(StatusCode(400));
            }
        }
예제 #21
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);
        }
예제 #22
0
        public IActionResult UpdateAttributeConstraint([FromBody] TblAttributeConstraint updateAttributeConstraint)
        {
            ErrorObject            response = new ErrorObject();
            ResponseMessage        rm       = new ResponseMessage();
            FieldErrors            error    = new FieldErrors();
            TblAttributeConstraint objAttributeConstraint = new TblAttributeConstraint();
            string userName = User.Claims.FirstOrDefault().Value;

            updateAttributeConstraint.UpdateBy = userName;
            if (string.IsNullOrEmpty(updateAttributeConstraint.Name) || string.IsNullOrEmpty(updateAttributeConstraint.ContraintsType))
            {
                List <FieldErrors> lstError = new List <FieldErrors>();
                if (string.IsNullOrEmpty(updateAttributeConstraint.Name))
                {
                    error.objectName = AttributeConstant.TypeAttributeConstraint;
                    error.field      = AttributeConstant.entityNameConstraint;
                    error.message    = AttributeConstant.Message;
                    lstError.Add(error);
                }
                if (string.IsNullOrEmpty(updateAttributeConstraint.ContraintsType))
                {
                    error.objectName = AttributeConstant.TypeAttributeConstraint;
                    error.field      = AttributeConstant.entityTypeConsatraint;
                    error.message    = AttributeConstant.Message;
                    lstError.Add(error);
                }
                rm.Title   = AttributeConstant.Title;
                rm.Message = AttributeConstant.MessageError;
                rm.Status  = AttributeConstant.statusError;
                var field = new { fieldErrors = lstError };
                rm.fieldError = field;
                return(StatusCode(400, rm));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            object obj  = _attributeRepository.UpdateAttributeConstraint(updateAttributeConstraint);
            int    code = Convert.ToInt32(obj.GetType().GetProperty(AttributeConstant.Code).GetValue(obj, null));
            int    Id   = Convert.ToInt32(obj.GetType().GetProperty(AttributeConstant.Id).GetValue(obj, null));

            if (code == 1)
            {
                if (Id > 0)
                {
                    objAttributeConstraint = _attributeRepository.GetAttributesConstraintbyId(Id);
                }
                _attributeRepository.SetStringCache(_organizationCode + AttributeConstant.Attributes_GetListConstraint, _attributeRepository.GetAllConstraint(AttributeConstant.StringTextSearch, AttributeConstant.PageCurent, AttributeConstant.Recodperpage));
                _attributeRepository.GetStringCache(AttributeConstant.Attributes_GetListConstraint);
                var responeNew = new { TblAttributeConstraint = objAttributeConstraint };
                return(StatusCode(201, Newtonsoft.Json.JsonConvert.SerializeObject(responeNew)));
            }
            else if (code == 0)
            {
                response.entityName = AttributeConstant.TypeAttributeConstraint;
                response.errorKey   = AttributeConstant.errorKey;
                response.status     = AttributeConstant.statusError;
                response.message    = AttributeConstant.MessageDulicateAttributename;
                return(StatusCode(400, response));
            }
            else
            {
                return(StatusCode(400));
            }
        }
예제 #23
0
        public static FormPanelResult FormPanel(this System.Web.Mvc.Controller controller, string errorMessage, FieldErrors errors)
        {
            FormPanelResult result = new FormPanelResult
            {
                Success      = false,
                ErrorMessage = errorMessage
            };

            result.Errors.AddRange(errors);

            return(result);
        }