public RecentMediaPage()
        {
            InitializeComponent();

            _client = NasaClient.Default();
            Loader  = new NasaLazyLoader(_client, x => x.MediaType == MediaType.Image);
        }
Example #2
0
 public HomeController(ILogger <HomeController> logger, CovidClient covidClient, NasaClient nasaClient, SpaceXClient spaceXClient, OxfordDictionaryClient oxfordDictionaryClient)
 {
     _logger                 = logger;
     _covidClient            = covidClient;
     _nasaClient             = nasaClient;
     _spaceXClient           = spaceXClient;
     _oxfordDictionaryClient = oxfordDictionaryClient;
 }
Example #3
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");

            var configuration = builder.Build();

            string inputFilePath = Path.Combine(Directory.GetCurrentDirectory(), configuration["inputFileName"]);

            Console.WriteLine($"Opening {inputFilePath}");
            if (File.Exists(inputFilePath))
            {
                FileStream file = new FileStream(inputFilePath, FileMode.Open);

                Console.WriteLine("Reading dates from input file.");

                List <DateTime> inputDates = FileHandler.ReadDatesFromFile(file);

                Console.WriteLine("Done.\n");

                NasaClient nasaClient = new NasaClient(configuration["nasaApi:apiKey"]);

                int pagesToRequest = ParseNumOfPagesToRequest(configuration["numOfPagesToRequest"]); //defaults to 1

                Console.WriteLine("Getting rover manifests.");

                Dictionary <string, RoverManifest> roverManifests = Task.Run(() => nasaClient.GetAllRoverManifests()).Result;

                Console.WriteLine("Done.\n");

                Dictionary <string, Dictionary <DateTime, List <RoverPhotoPage> > > roverPhotoPages = InitializeRoverPhotoPages(roverManifests, inputDates);

                Console.WriteLine("Begin fetching photos");
                foreach (var rover in roverManifests)
                {
                    Console.WriteLine($"\tFetch photos for {rover.Key}");
                    foreach (var date in inputDates)
                    {
                        Console.WriteLine($"\t\t\tat {date.ToShortDateString()}");
                        if (date >= rover.Value.PhotoManifest.LandingDate && date <= rover.Value.PhotoManifest.RecentPhotoDate)
                        {
                            for (int i = 1; i <= pagesToRequest; i++)
                            {
                                Console.WriteLine($"\t\t\t\tPage {i}");
                                RoverPhotoPage photoPage = Task.Run(() => nasaClient.GetRoverPhotoPage(rover.Key, date, i)).Result;
                                roverPhotoPages[rover.Key][date].Add(photoPage);
                            }
                        }
                    }
                    Console.WriteLine();
                }

                Console.WriteLine("Download photos");
                nasaClient.DownloadImagesForRovers(roverPhotoPages, Directory.GetCurrentDirectory());
                Console.WriteLine("Done.");

                Console.WriteLine("Writing Rover Photo Pages to output.json");
                FileHandler.WriteRoverPhotoPagesToJson(roverPhotoPages);
                Console.WriteLine("Done.\n");
            }

            Console.WriteLine("Enter key to exit.");
            Console.ReadLine();
        }
Example #4
0
 public RoverController(MarsRoverContext context, IConfiguration configuration)
 {
     _context       = context;
     _configuration = configuration;
     _nasaClient    = new NasaClient(_configuration.GetSection("NasaApi:ApiKey").Value);
 }