Пример #1
0
        public IActionResult PictureOfDay([Bind("Date")] PictureOfDayFilter pictureOfDayFilter)
        {
            if (pictureOfDayFilter.Date > DateTime.Now)
            {
                pictureOfDayFilter.Date = DateTime.Now;
            }

            var getPictureOfDayFilter = new GetPictureOfDayFilter(pictureOfDayFilter.Date);

            var pictureOfDayDto = _apodService.GetPictureOfDay(getPictureOfDayFilter).GetAwaiter().GetResult();

            var pictureOfDayModel = new PictureOfDay
            {
                Copyright       = pictureOfDayDto.Copyright,
                Date            = pictureOfDayDto.Date,
                Explanation     = pictureOfDayDto.Explanation,
                Hdurl           = pictureOfDayDto.Hdurl,
                Media_type      = pictureOfDayDto.Media_type,
                Service_version = pictureOfDayDto.Service_version,
                Title           = pictureOfDayDto.Title,
                Url             = pictureOfDayDto.Url
            };

            return(View(pictureOfDayModel));
        }
Пример #2
0
        public async Task <PictureOfDayDto> GetPictureOfDay(GetPictureOfDayFilter getPictureOfDayFilter)
        {
            var date   = getPictureOfDayFilter.Date.ToString("yyyy-MM-dd");
            var apiKey = _configuration.GetValue <string>("NasaApodApiKey");

            var baseAddress = _configuration.GetValue <string>("NasaApodBaseAddress");

            var requestUri = baseAddress + $"?api_key={apiKey}&date={date}";

            var response = await _httpClient.GetAsync(requestUri).ConfigureAwait(false);

            if (!response.IsSuccessStatusCode)
            {
                return(new PictureOfDayDto($"Fail on request Uri:{requestUri}. return statuscode:{response.StatusCode}"));
            }

            var responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();

            var getPictureOfDayDto = JsonConvert.DeserializeObject <PictureOfDayDto>(responseString);

            return(getPictureOfDayDto);
        }