public void GetAllStarshipsTest_ReturnsExpectedType() { string defaultPageNumber = "1"; EntityResults <Starship> result = swapiService.GetAllPaginated <Starship>("/starships/", defaultPageNumber); Assert.IsInstanceOfType(result, typeof(EntityResults <Starship>)); }
/// <summary> /// Retrieves the <see cref="SwapiStarshipApp.Entities.Starship" /> for the gievn endpoint. /// </summary> /// <param name="endpoint">The address of the endpoint.</param> /// <param name="parameters">The address of the endpoint.</param> /// <returns> /// Returns Entity results. /// </returns> private EntityResults <T> GetMultiple <T>(string endpoint, Dictionary <string, string> parameters) where T : BaseEntity { string serializedParameters = ""; if (parameters != null) { serializedParameters = "?" + SerializeDictionary(parameters); } string json = Request(string.Format("{0}{1}{2}", apiUrl, endpoint, serializedParameters), HttpMethod.GET); EntityResults <T> swapiResponse = JsonConvert.DeserializeObject <EntityResults <T> >(json); return(swapiResponse); }
/// <summary> /// Retrieves the next page number /// </summary> /// <param name="entityName">The name of the entity being retrieved</param> /// <param name="pageNumber">The number of the page being retrieved. Initially set to default.</param> /// <returns> /// Returns the next/previous page number /// </returns> public EntityResults <T> GetAllPaginated <T>(string entityName, string pageNumber = defaultPageNumber) where T : BaseEntity { Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("page", pageNumber); EntityResults <T> result = GetMultiple <T>(entityName, parameters); result.nextPageNo = String.IsNullOrEmpty(result.next) ? null : GetQueryParameters(result.next)["page"]; result.previousPageNo = String.IsNullOrEmpty(result.previous) ? null : GetQueryParameters(result.previous)["page"]; return(result); }
public async Task <IEnumerable <KeyValuePair <Personagem, int> > > ObterPaginado(int page = 1) { HelperApi api = new HelperApi("https://swapi.co/api/", "json"); HttpResponseMessage response = await api.Cliente.GetAsync($"people?page={page}"); if (response.IsSuccessStatusCode) { var dados = await response.Content.ReadAsStringAsync(); EntityResults <PersonagemDTO> swapiResponse = JsonConvert.DeserializeObject <EntityResults <PersonagemDTO> >(dados); await AdicionaResponseAListaAsync(swapiResponse.results); return(Mapper(personagemCompleto, Convert.ToInt32(swapiResponse.count))); } return(new List <KeyValuePair <Personagem, int> >()); }
public async Task <IEnumerable <Especie> > ObterTodos() { HelperApi api = new HelperApi("https://swapi.co/api/", "json"); HttpResponseMessage response = await api.Cliente.GetAsync($"species/?page={page}"); if (response.IsSuccessStatusCode) { var dados = await response.Content.ReadAsStringAsync(); swapiResponse = JsonConvert.DeserializeObject <EntityResults <EspecieDTO> >(dados); await AdicionaResponseAListaAsync(); while (TemProximaPagina(swapiResponse)) { page++; await ObterTodos(); } return(Mapper(especies)); } return(new List <Especie>()); }
private bool TemProximaPagina(EntityResults <EspecieDTO> swapiResponse) { return(swapiResponse.next != null); }
/// <summary> /// Get all the starship entites on the given page /// </summary> public EntityResults <Starship> GetAllStarships(string pageNumber = defaultPageNumber) { EntityResults <Starship> result = GetAllPaginated <Starship>("/starships/", pageNumber); return(result); }