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)); }
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()); }