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