コード例 #1
0
        public async Task <IActionResult> Index(int pageNum = 1)
        {
            var asteroids = await nasaService.GetAsteroidDataCollectionAsync(pageNum - 1, PageSize);

            if (asteroids == null || !asteroids.Asteroids.Any())
            {
                return(View("Error", new ErrorViewModel
                {
                    ErrorMessage = $"Page number '{pageNum}' doesn't exist."
                }));
            }

            var viewModel = mapper.Map <AsteroidPageViewModel>(asteroids);

            viewModel.PageNumber++;

            return(View("AsteroidList", viewModel));
        }
コード例 #2
0
        /// <summary>
        /// Downloads a specific asteroid page from the Nasa Api as an xlsx file.
        /// </summary>
        /// <param name="pageNum">Page to download.</param>
        /// <returns></returns>
        public async Task <IActionResult> DownloadFile(int pageNum)
        {
            //We subtract one since this page variable comes from the view which has the page count incremented
            //by one so it displays properly.
            var asteroids = await nasaService.GetAsteroidDataCollectionAsync(pageNum - 1, PageSize);

            if (asteroids == null)
            {
                return(View("Error", new ErrorViewModel
                {
                    ErrorMessage = $"Page number '{pageNum}'s doesn't exist."
                }));
            }

            var sheets = excelConverter.CreateSpreadsheets(asteroids.Asteroids);

            var excelPackage = excelConverter.CreateExcelPackage(sheets);

            var file = await excelPackage.GetAsByteArrayAsync();

            return(File(file, ContentType, string.Format(FileName, pageNum)));
        }