public async Task <IActionResult> Edit(int id, EditAnimalInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                input.CategoriesItems = this.categoriesService.GetAllKeyValuePairs();

                return(this.View(input));
            }

            await this.animalService.UpdateAsync(id, input);

            return(this.Redirect("/Animal/All"));
        }
        public async Task UpdateAsync(int animalId, EditAnimalInputModel input)
        {
            var animal = this.animalsRepository.All()
                         .FirstOrDefault(x => x.Id == animalId);

            animal.Name       = input.Name;
            animal.Age        = input.Age;
            animal.ImageUrl   = input.ImageUrl;
            animal.Weight     = input.Weight;
            animal.Color      = input.Color;
            animal.CategoryId = input.CategoryId;

            await this.animalsRepository.SaveChangesAsync();
        }