public ActionResult <DogDTO> Put([FromBody] DogForUpdateDTO model) { try { var dog = mapper.Map <Dog>(model); TrainingCourse trainingCourse = trainingCourseService.GetBy(t => t.Name == model.TrainingCourse); Dog dogFromDatabase = dogService.GetById(model.Id); if (dogFromDatabase == null) { return(NotFound()); } dogFromDatabase.Breed = dog.Breed; dogFromDatabase.Name = dog.Name; dogFromDatabase.TaskEngagements = dog.TaskEngagements; dogFromDatabase.TrainingCourseId = dog.TrainingCourseId; dogFromDatabase.DateOfBirth = dogFromDatabase.DateOfBirth; dogFromDatabase.ChipNumber = dog.ChipNumber; dogFromDatabase.TrainingCourseId = trainingCourse.TrainingCourseId; dogService.Update(dogFromDatabase); DogDTO dogDTO = mapper.Map <DogDTO>(dogFromDatabase); // return Created($"api/dogs/get/{dogDTO.Name}", dogDTO); return(Ok(dogDTO)); } catch (Exception ex) { throw; } }
public async Task <ActionResult> Edit(UpdateDogViewModel model) { if (!ModelState.IsValid) { return(View("Error")); } DogForUpdateDTO forUpdateDTO = new DogForUpdateDTO { Id = model.DogId, Breed = model.Breed, ChipNumber = model.ChipNumber, Gender = model.Gender, Name = model.Name, TrainingCourse = model.TrainingCourse }; var serializedDogForUpdate = JsonSerializer.Serialize(forUpdateDTO); var httpClient = httpClientFactory.CreateClient("MilitaryDogsClient"); var request = new HttpRequestMessage(HttpMethod.Put, "api/Dog"); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip")); request.Content = new StringContent( serializedDogForUpdate, System.Text.Encoding.Unicode, "application/json"); using (var response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)) { if (!response.IsSuccessStatusCode) { var errorStream = await response.Content.ReadAsStreamAsync(); var error = errorStream.ReadAndDeserializeFromJson(); return(View("Error")); } else { response.EnsureSuccessStatusCode(); } var stream = await response.Content.ReadAsStreamAsync(); var dog = stream.ReadAndDeserializeFromJson <DogDTO>(); return(RedirectToAction("Index", "Dog")); } }