public void UploadExcel(LoadBudget viewModel) { var excel = viewModel.File; Stream stream = excel.OpenReadStream(); IExcelDataReader reader = null; if (excel.FileName.EndsWith(".xls")) { reader = ExcelReaderFactory.CreateBinaryReader(stream); } else if (excel.FileName.EndsWith(".xlsx")) { reader = ExcelReaderFactory.CreateOpenXmlReader(stream); } else { //ModelState.AddModelError("File", "This file format is not supported"); //return View(); } DataSet result = reader.AsDataSet(); DataTable dataTable = result.Tables[0]; int numberOfRows = dataTable.Rows.Count; int numberOfColumn = dataTable.Columns.Count; for (int x = 1; x < numberOfRows; x++) { var lineItemCode = $"0{dataTable.Rows[x][0].ToString()}"; var economic = _unitOfWork.LineItemsRepository.Items .FirstOrDefault(l => l.Code == lineItemCode); if (economic != null) { var budget = new Budget { TransactionDate = DateTime.Now.ToString("dd/MM/yyyy"), EconomicId = economic.Id, Description = dataTable.Rows[x][1].ToString(), Amount = Convert.ToDecimal(dataTable.Rows[x][2].ToString()), }; _unitOfWork.BudgetsRepository.Insert(budget); _unitOfWork.SaveChanges(); } } }
public IActionResult SaveLoadBudget(LoadBudget viewModel) { var excel = viewModel.File; if (excel != null && excel.Length > 0) { _budgetManager.UploadExcel(viewModel); TempData["AlertMessage"] = $"Your budget was uploaded successfully."; } return(RedirectToAction("Index")); }
public IActionResult LoadBudget() { var viewModel = new LoadBudget(); return(View(viewModel)); }