public void ImportExcelData(BankAccountModel.AccountModel model) { using (var session = usersSessionFactory.CreateContext(true)) { var account = session.BankAccounts.SingleOrDefault(a => a.AccountNo == model.AccountNo); if (account == null) { account = new BankAccount() { AccountNo = model.AccountNo.Trim() }; session.BankAccounts.Add(account); } account.Balance = (decimal)model.Balance; var lastDbDate = account.BankAccountItems.Any() ? account.BankAccountItems.Max(i => i.Date) : DateTime.MinValue; foreach (var item in model.Items) { if (item.Date > lastDbDate) { var operation = item.Operation; var cutAt = ", mok. įm. / a. k."; if (operation.Contains(cutAt)) { operation = operation.Substring(0, operation.IndexOf(cutAt)); } cutAt = ", gav. įm. / a. k."; if (operation.Contains(cutAt)) { operation = operation.Substring(0, operation.IndexOf(cutAt)); } account.BankAccountItems.Add(new BankAccountItem() { Date = item.Date, Operation = operation, Expense = item.ExpenseDecimal, Income = item.IncomeDecimal }); } } } }
public virtual ActionResult ImportBankAccountExcel(string userObjectId, HttpPostedFileBase hpf) { if (CurrentUser.Role != UserRoles.Admin) { return(RedirectToAction(MVC.Sponsor.Index())); } if (hpf.ContentLength == 0) { return(Index()); } using (var package = new ExcelPackage(hpf.InputStream)) { var sheet = package.Workbook.Worksheets.First(); var model = new BankAccountModel.AccountModel(); var list = new List <BankAccountItemModel>(); for (int row = 18; row < sheet.Dimension.End.Row; row++) { if (sheet.Cells[row, 1].Value == null) { continue; } long serialDate = long.Parse(sheet.Cells[row, 1].Value.ToString()); DateTime date = DateTime.FromOADate(serialDate); list.Add(new BankAccountItemModel() { Date = date, Operation = sheet.Cells[row, 2].Value.ToString(), Expense = (double?)sheet.Cells[row, 3].Value, Income = (double?)sheet.Cells[row, 4].Value }); } model.Items = list; model.AccountNo = sheet.Cells[13, 1].Value.ToString(); model.Balance = (double)sheet.Cells[sheet.Dimension.End.Row, 4].Value; Service.ImportExcelData(model); } return(RedirectToAction(MVC.Sponsor.Index())); }