Exemple #1
0
        public async Task <IActionResult> GetSpecies([FromServices] ISpeciesService service, [FromQuery] SpeciesBindingModel model)
        {
            var species = new PaginatedSpecies();

            if (!string.IsNullOrEmpty(model.search))
            {
                species = await service.GetSpeciesByName(model.search, model.page);
            }

            else
            {
                species = await service.GetAllSpecies(model.page);
            }

            return(Ok(species));
        }
Exemple #2
0
        public async Task <PaginatedSpecies> GetAllSpecies(int pageNumber)
        {
            var swapiSpeciesResponse = await GetAllSpeciesFromSwapi(pageNumber);

            var speciesList = new List <Species>();

            foreach (var swapiSpecies in swapiSpeciesResponse.results)
            {
                var species = await GetSpeciesFullInfo(swapiSpecies);

                speciesList.Add(species);
            }
            var paginatedSpecies = new PaginatedSpecies {
                TotalResults = swapiSpeciesResponse.count,
                Species      = speciesList
            };

            return(paginatedSpecies);
        }
Exemple #3
0
        public async Task <PaginatedSpecies> GetSpeciesByName(string name, int page)
        {
            var swapiSpeciesResponse = await SearchSpeciesByNameFromSwapi(name, page);

            var speciesList = new List <Species>();

            foreach (var swapiSpecies in swapiSpeciesResponse.results)
            {
                var species = await GetSpeciesFullInfo(swapiSpecies);

                speciesList.Add(species);
            }
            var paginatedSpecies = new PaginatedSpecies {
                TotalResults = swapiSpeciesResponse.count,
                Species      = speciesList
            };

            return(paginatedSpecies);
        }