Example #1
0
        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);
        }
Example #2
0
        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)));
        }
Example #3
0
        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();
        }
Example #4
0
        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);
        }
Example #5
0
        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;
 }