Validation – Validation Filter

User.cs (Modelimiz)

 public class User
    {
        [Required]
        [StringLength(20,ErrorMessage ="Adınız en fazla 20 karakter olabilir",MinimumLength =3)]
        public string Firstname { get; set; }

        [Required]
        [StringLength(20, ErrorMessage = "Soyadınız en fazla 20 karakter olabilir", MinimumLength = 3)]
        public string Lastname { get; set; }

        [Required]
        [EmailAddress]
        public string Email { get; set; }

        [Required]
        [StringLength(15, ErrorMessage = "Şifreniz en fazla 15 en az 6 karakter olabilir", MinimumLength = 6)]
        public string Password { get; set; }

        [Required]
        [Compare("Password",ErrorMessage ="Şifre bilgileriniz kontrol ediniz")]
        public string ConfirmPassword { get; set; }

        [Required]
        [Range(18,100,ErrorMessage ="Yaş aralığı 18-100 arası olmalıdır")]
        public int BirthYear { get; set; }

        [CreditCard]
        public string CreditCard { get; set; }

        [Url]
        public string FacebookProfileUrl { get; set; }

        [Required]
        [Phone]
        public string Phone { get; set; }
    }

ValidationController (modelimizi dolduruyoruz)

        [HttpPost]
        [ModelValidation]
        public HttpResponseMessage Insert(User user)
        {
            return Request.CreateResponse(HttpStatusCode.OK, "Kullanıcı oluşturuldu");
        }

ModelValidation.cs

 public class ModelValidation : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)    //action çalışmadan önce çalışır
        {
            if (actionContext.ModelState.IsValid)
            {
                base.OnActionExecuting(actionContext);
            }
            else
            {
                var errorList = actionContext.ModelState.Values.SelectMany(v => v.Errors).Select(x => x.ErrorMessage).ToList();
                var errorMessage = string.Join(Environment.NewLine, errorList);

                actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
            }

        }
    }

Bir cevap yazın