protected void ValidateResource(TResource resource, bool skipValidate = false, bool skipSharedValidate = false) { if (resource == null) { throw new BadRequestException("Request body can't be empty"); } var errors = new List <ValidationFailure>(); if (!skipSharedValidate) { errors.AddRange(SharedValidator.Validate(resource).Errors); } if (Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase) && !skipValidate && !Request.Path.ToString().EndsWith("/test", StringComparison.InvariantCultureIgnoreCase)) { errors.AddRange(PostValidator.Validate(resource).Errors); } else if (Request.Method.Equals("PUT", StringComparison.InvariantCultureIgnoreCase)) { errors.AddRange(PutValidator.Validate(resource).Errors); } if (errors.Any()) { throw new ValidationException(errors); } }
protected TResource ReadResourceFromRequest() { //TODO: handle when request is null var resource = Request.Body.FromJson <TResource>(); if (resource == null) { throw new BadRequestException("Request body can't be empty"); } var errors = SharedValidator.Validate(resource).Errors.ToList(); if (Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase)) { errors.AddRange(PostValidator.Validate(resource).Errors); } else if (Request.Method.Equals("PUT", StringComparison.InvariantCultureIgnoreCase)) { errors.AddRange(PutValidator.Validate(resource).Errors); } if (errors.Any()) { throw new ValidationException(errors); } return(resource); }
protected TResource ReadResourceFromRequest(bool skipValidate = false, bool skipSharedValidate = false) { var resource = new TResource(); try { resource = Request.Body.FromJson <TResource>(); } catch (JsonReaderException ex) { throw new BadRequestException(ex.Message); } if (resource == null) { throw new BadRequestException("Request body can't be empty"); } var errors = new List <ValidationFailure>(); if (!skipSharedValidate) { errors.AddRange(SharedValidator.Validate(resource).Errors); } if (Request.Method.Equals("POST", StringComparison.InvariantCultureIgnoreCase) && !skipValidate && !Request.Url.Path.EndsWith("/test", StringComparison.InvariantCultureIgnoreCase)) { errors.AddRange(PostValidator.Validate(resource).Errors); } else if (Request.Method.Equals("PUT", StringComparison.InvariantCultureIgnoreCase)) { errors.AddRange(PutValidator.Validate(resource).Errors); } if (errors.Any()) { throw new ValidationException(errors); } return(resource); }