public IActionResult Post([FromBody] Resource resource) { if (resource == null) { ModelState.AddModelError("", "Resource is required"); return(BadRequest(ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (resource.CustomProperty3.Month == 5) { if (resource.CustomProperty5 == null) { ModelState.AddModelError("CustomProperty5", "Is required if CustomProperty3 equals May 2018"); return(BadRequest(ModelState)); } } var result = resourceRepository.AddNewResource(resource); if (result.IsSuccess) { return(Ok(result.ResultObject)); } foreach (var error in result.Errors) { ModelState.AddModelError("Add error", error.Message); } return(BadRequest(ModelState)); }