public static async Task <StarWarsEntityList <Starship> > GetStarships(string stops, double inputDist) { var api = new StarWarsAPIClient(); // Get first page of all starships available StarWarsEntityList <Starship> _lstStarships = await api.GetAllStarship("1"); // Get the number of pages int totalPages = Convert.ToInt32(Math.Ceiling(((double)_lstStarships.count / _lstStarships.results.Count()))); // While loop to filter through all pages of data returned (data returns results in groups of 10) for (int pageNum = 1; pageNum < totalPages + 1; pageNum++) { if (pageNum != 1) // Skip recalling page 1. Only needs recallinging for changing to pages that follow { _lstStarships = await api.GetAllStarship(pageNum.ToString()); } foreach (Starship s in _lstStarships.results) { stops = CalculateStops(s.consumables, s.MGLT, inputDist); Console.WriteLine(string.Format("{0}: {1}", s.name, stops)); } } return(_lstStarships); }
public async Task <Starship> Get(int id) { var api = new StarWarsAPIClient(); var starship = await api.GetStarshipAsync(id.ToString()); return(await Task.FromResult(mapper.GetStarship(starship))); }
static void Main(string[] args) { /* * Utilizando a StarWars APi helper * passos: determinar o total das naves (count) * -verificar dinamicamente quantas paginas existem no arquivo * -retornar os dados (result) em um List * - calcular o numero de paradas * - exibir o List * */ var api = new StarWarsAPIClient(); int count; // Total de registros bool proximo; // se contém próxima página int naves_por_pagina; Console.Write("Entre a distância desejada em MGLT: "); Globals.MGLT = Console.ReadLine(); List <Nave> Ship = new List <Nave>(); int indice = 1; Console.Write("Buscando Dados das Naves...\n\n"); Console.WriteLine(" ]|| ---INICIO DA TRANSMISSAO-- -||[ "); Nave novanave = new Nave(); do { StarWarsEntityList <Starship> nave = api.GetAllStarshipAsync(indice.ToString()).Result; count = Convert.ToInt32(nave.count); proximo = nave.isNext; naves_por_pagina = nave.results.Count(); foreach (var navinha in nave.results) { novanave.Name = navinha.name; novanave.MGLT = navinha.MGLT; novanave.Consumables = navinha.consumables; novanave.ResupplyFrequency = CalculeResupplyFrequency(novanave); if (novanave.ResupplyFrequency == "unknown") { novanave.ResupplyFrequency = "indeterminado"; } ; Ship.Add(novanave); Console.WriteLine("Nave: " + novanave.Name + " : Número de Paradas : " + novanave.ResupplyFrequency); } indice++; } while (proximo == true); Console.WriteLine("||--- FIM DA TRANSMISSAO ---||\n\n"); Console.WriteLine("PRESSIONE QUALQUER TECLA PARA FINALIZAR..."); Console.ReadLine(); }
public List <Starship> GetAllFromApi() { var api = new StarWarsAPIClient(); var starships = new List <Starship>(); int pageNo = 0; while (true) { var page = api.GetAllStarship((++pageNo).ToString()); starships.AddRange(page.Result.results.Select(x => mapper.GetStarship(x))); if (!page.Result.isNext) { break; } } return(starships); }
public async Task <List <Starship> > GetAll() { var api = new StarWarsAPIClient(); var starships = new List <Starship>(); int pageNo = 0; while (true) { var page = await api.GetAllStarship((++pageNo).ToString()); starships.AddRange(page.results.Select(x => model.GetStarship(x))); if (!page.isNext) { break; } } return(starships); }
public StarWars(StarWarsDBContext context, StarWarsAPIClient starWarsAPIClient) { _context = context; _starWarsAPIClient = starWarsAPIClient; }