Beispiel #1
0
        public async Task <ActionResult <GiveMeSpaceResponse> > Get()
        {
            //Most recent Curiosity photos - usually two days behind - empty result for current or previous day
            var twoDaysAgo = DateTime.Today.Date.AddDays(-2).ToString("yyyy-MM-dd");

            using (var client = new HttpClient())
            {
                try
                {
                    //Astronomy Pic of the Day
                    var responseApod = await client.GetAsync("https://api.nasa.gov/planetary/apod?api_key=" + nasaKey);

                    var jsonStringApod = await responseApod.Content.ReadAsStringAsync();

                    var apodData          = JsonConvert.DeserializeObject <AstronomyPicOfDayResponse>(jsonStringApod);
                    var astronomyPicOfDay = new AstronomyPicOfDayResponse
                    {
                        Date            = apodData.Date,
                        Title           = apodData.Title,
                        Explanation     = apodData.Explanation,
                        HdUrl           = apodData.HdUrl,
                        Media_Type      = apodData.Media_Type,
                        Url             = apodData.Url,
                        Service_Version = apodData.Service_Version
                    };


                    //Curiosity Pics and Data
                    var responseMarsPhoto = await client.GetAsync("https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?earth_date=" + twoDaysAgo + "&api_key=" + nasaKey);

                    var jsonStringMarsPhoto = await responseMarsPhoto.Content.ReadAsStringAsync();

                    var photoData = JsonConvert.DeserializeObject <Mars>(jsonStringMarsPhoto);
                    var curiosityPhotosResponse = new CuriosityPhotosResponse[] { };

                    if (photoData != null)
                    {
                        curiosityPhotosResponse = photoData.Photos;
                    }

                    //Space Data
                    var giveMeSpaceResponse = new GiveMeSpaceResponse
                    {
                        AstronomyPicOfDayResponse = astronomyPicOfDay,
                        CuriosityPhotosResponse   = curiosityPhotosResponse
                    };

                    return(giveMeSpaceResponse);
                }
                catch (HttpRequestException httpRequestException)
                {
                    return(BadRequest($"Error: {httpRequestException.Message}"));
                }
            }
        }
Beispiel #2
0
        public async Task <ActionResult <GiveMeSpaceResponse> > Get(DateTime date)
        {
            string dateString = date.ToString("yyyy-MM-dd");

            using (var client = new HttpClient())
            {
                try
                {
                    //Astronomy Pic Of Day by Date
                    var responseApodDate = await client.GetAsync("https://api.nasa.gov/planetary/apod?date=" + dateString + "&api_key=" + nasaKey);

                    var jsonStringApodDate = await responseApodDate.Content.ReadAsStringAsync();

                    var apodData          = JsonConvert.DeserializeObject <AstronomyPicOfDayResponse>(jsonStringApodDate);
                    var astronomyPicOfDay = new AstronomyPicOfDayResponse
                    {
                        Date            = apodData.Date,
                        Title           = apodData.Title,
                        Explanation     = apodData.Explanation,
                        HdUrl           = apodData.HdUrl,
                        Media_Type      = apodData.Media_Type,
                        Url             = apodData.Url,
                        Service_Version = apodData.Service_Version
                    };

                    //Curiosity Pics and Data by Date
                    var responseMarsPhotoDate = await client.GetAsync("https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?earth_date=" + dateString + "&api_key=" + nasaKey);

                    var jsonStringMarsPhotoDate = await responseMarsPhotoDate.Content.ReadAsStringAsync();

                    var photoData = JsonConvert.DeserializeObject <Mars>(jsonStringMarsPhotoDate);
                    var curiosityPhotosResponse = photoData.Photos;

                    //Space Data
                    var giveMeSpaceResponse = new GiveMeSpaceResponse
                    {
                        AstronomyPicOfDayResponse = astronomyPicOfDay,
                        CuriosityPhotosResponse   = curiosityPhotosResponse
                    };

                    return(giveMeSpaceResponse);
                }
                catch (HttpRequestException httpRequestException)
                {
                    return(BadRequest($"Error: {httpRequestException.Message}"));
                }
            }
        }