Ejemplo n.º 1
0
        public IActionResult Get([FromBody] AnimalSearchViewModel animalsSearch)
        {
            AnimalSexEnum        sex      = (AnimalSexEnum)Enum.Parse(typeof(AnimalSexEnum), animalsSearch.Sex);
            AnimalSpeciesEnum    species  = (AnimalSpeciesEnum)Enum.Parse(typeof(AnimalSpeciesEnum), animalsSearch.Species);
            IEnumerable <Animal> _animals = _animalRepository.FindBy(a =>
                                                                     a.Name == (animalsSearch.Name.Length > 0 ? animalsSearch.Name : a.Name) &&
                                                                     a.Breed == (animalsSearch.Breed.Length > 0 ? animalsSearch.Breed : a.Breed) &&
                                                                     a.Sex == sex &&
                                                                     a.Species == species).ToList();

            IEnumerable <AnimalViewModel> _animalViewModel = Mapper.Map <IEnumerable <Animal>, IEnumerable <AnimalViewModel> >(_animals);

            return(new OkObjectResult(_animalViewModel));
        }
Ejemplo n.º 2
0
        public IActionResult GetByUserAndParams(int id, [FromBody] AnimalSearchViewModel animalsSearch)
        {
            User _user = _userRepository.GetSingle(u => u.Id == id, u => u.FavoriteAnimals);

            if (_user != null)
            {
                AnimalSexEnum         sex         = (AnimalSexEnum)Enum.Parse(typeof(AnimalSexEnum), animalsSearch.Sex);
                AnimalSpeciesEnum     species     = (AnimalSpeciesEnum)Enum.Parse(typeof(AnimalSpeciesEnum), animalsSearch.Species);
                AnimalAgeAccuracyEnum ageAccuracy = (AnimalAgeAccuracyEnum)Enum.Parse(typeof(AnimalAgeAccuracyEnum), animalsSearch.AgeAccuracy);
                DateTime dateFrom = animalsSearch.AgeFrom == -1 ? GetDate(30, AnimalAgeAccuracyEnum.Years) : GetDate(animalsSearch.AgeFrom, ageAccuracy);
                DateTime dateTo   = dateTo = animalsSearch.AgeTo == -1 ? GetDate(-30, AnimalAgeAccuracyEnum.Years) : GetDate(-animalsSearch.AgeTo, ageAccuracy);

                IEnumerable <Animal> _animals = _animalRepository.AllIncluding(a => a.AnimalsToAnimalShelter, a => a.AnimalsToAnimalShelter.AnimalShelter)
                                                .Where(a => a.Name.ToUpper().Contains(animalsSearch.Name.Length > 0 ? animalsSearch.Name.ToUpper() : a.Name.ToUpper()) &&
                                                       a.Breed.ToUpper().Contains(animalsSearch.Breed.Length > 0 ? animalsSearch.Breed.ToUpper() : a.Breed.ToUpper()) &&
                                                       a.Sex == sex && a.Species == species && a.DateOfBirth >= dateTo && a.DateOfBirth <= dateFrom &&
                                                       a.AnimalsToAnimalShelter.AnimalShelter.Name == animalsSearch.ShelterName).ToList();

                IList <AnimalDetailsViewModel> _animalViewModel = new List <AnimalDetailsViewModel>();

                foreach (var animal in _animals)
                {
                    AnimalShelter          _animalShelterDb        = _animalShelterRepository.GetSingle(s => s.Id == animal.AnimalsToAnimalShelter.AnimalShelterId);
                    AnimalDetailsViewModel _animalDetailsViewModel = Mapper.Map <Animal, AnimalDetailsViewModel>(animal);
                    if (_user.FavoriteAnimals.Select(x => x.AnimalId).ToList().Contains(animal.Id))
                    {
                        _animalDetailsViewModel.IsFavorite = true;
                    }
                    _animalDetailsViewModel.AnimalShelter = Mapper.Map <AnimalShelter, AnimalShelterViewModel>(_animalShelterDb);
                    _animalViewModel.Add(_animalDetailsViewModel);
                }

                return(new OkObjectResult(_animalViewModel));
            }
            return(NotFound());
        }