示例#1
0
        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();
                }
            }
        }
示例#2
0
        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"));
        }
示例#3
0
        public IActionResult LoadBudget()
        {
            var viewModel = new LoadBudget();

            return(View(viewModel));
        }