示例#1
0
 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;
     }
 }
示例#2
0
        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"));
            }
        }