public ActionResult DataSheet(int month, int year, HttpPostedFileBase file) { var viewModel = new DataSheetViewModel { Year = year, Month = month, Years = MonthYearHelper.GetYearList(), Months = MonthYearHelper.GetMonthList(), HasTags = true }; if (file != null && file.ContentLength > 0) { if (file.FileName.EndsWith(".csv")) { using (var stream = file.InputStream) { using (var csvTable = new DataTable()) { using (var reader = new CsvReader(new StreamReader(stream), true)) { csvTable.Load(reader); if (!csvTable.IsHeaderValid(Common.Constants.Constants.DATASHEET_HEADERS)) { ModelState.AddModelError("", String.Format("Uploaded file does not contain all the required headers: {0}", String.Join(",", Common.Constants.Constants.DATASHEET_HEADERS))); return(View(viewModel)); } try { _dataSheetService.UploadDataSheet(month, year, csvTable); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } } } } } else { ModelState.AddModelError("", "Invalid file format. Please select only .csv file"); } } //TempData["Message"] = "Datasheet has been successfully uploaded"; return(View(viewModel)); }