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)); }
/// <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))); }