private async System.Threading.Tasks.Task PostTrainingCourseMovieAndHandleValdationErrors( CancellationToken cancellationToken) { var trainingCourseToCreate = new TrainingCourseForCreationDTO { Description = "YYY", Duration = 0, Name = "XXX" }; var serializedCourseForCreation = JsonConvert.SerializeObject(trainingCourseToCreate); using (var request = new HttpRequestMessage( HttpMethod.Post, "api/TrainingCourse")) { request.Headers.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip")); request.Content = new StringContent(serializedCourseForCreation); request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (var response = await client.Client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken)) { if (!response.IsSuccessStatusCode) { if (response.StatusCode == System.Net.HttpStatusCode.UnprocessableEntity) { var errorStream = await response.Content.ReadAsStreamAsync(); var validationErrors = errorStream.ReadAndDeserializeFromJson(); Console.WriteLine(validationErrors); return; } else { response.EnsureSuccessStatusCode(); } } var stream = await response.Content.ReadAsStreamAsync(); var movie = stream.ReadAndDeserializeFromJson <TrainingCourseDTO>(); } } }
//[Authorize(Roles = "admin")] public ActionResult Post([FromBody] TrainingCourseForCreationDTO model) { if (ModelState.IsValid) { var entity = mapper.Map <TrainingCourse>(model); TrainingCourse trainingCourse = new TrainingCourse() { Description = entity.Description, Duration = entity.Duration, Name = entity.Name }; courseService.Insert(trainingCourse); return(Ok(trainingCourse)); } return(StatusCode(StatusCodes.Status400BadRequest, new ResponseModel { Status = "Validation error!", Message = "You should check your input parameters!" })); }
public async System.Threading.Tasks.Task CreateResource() { var trainingCourseToCreate = new TrainingCourseForCreationDTO { Description = "this is some description", Duration = 4, Name = "Search service 2" }; var serializedTrainingCourseToCreate = JsonConvert.SerializeObject(trainingCourseToCreate); var request = new HttpRequestMessage(HttpMethod.Post, "api/TrainingCourse"); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); request.Content = new StringContent(serializedTrainingCourseToCreate); request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); var createdCourse = JsonConvert.DeserializeObject <TrainingCourse>(content); }