public async Task <IActionResult> Create(BankStatementViewModel BankStatementViewModel) { if (!ModelState.IsValid) { return(View(BankStatementViewModel)); } if (!await Import(BankStatementViewModel.FileUpload)) { ViewData["Erro"] = "A file with the same name already exists!"; return(View("create")); } var filename = BankStatementViewModel.FileUpload.FileName; var builder = _ioservice.ReadFile(filename); // transform var bank = new BankStatement(); var ofx = bank.Create(builder, bank.Id); await _bankStatementService.Save(ofx); ViewData["Message"] = "Send to Database"; return(View("create")); }
public async Task <bool> RegisterBank(BankStatementViewModel bankStatementViewModel) { var bankStatement = _mapper.Map <BankStatement>(bankStatementViewModel); if (bankStatement.Invalid) { _notifiable.AddNotification(new Notification("Register failed - Invalid Fields")); return(false); } return(await _bankStatementService.RegisterBankStatement(bankStatement)); }
public async Task <ActionResult> BankStatement(BankStatementViewModel bankStatement) { try { var viewModel = await GetBankStatementViewModel(); viewModel.Movements = await _movementService.GetAll(bankStatement); return(View(viewModel)); } catch (NotFoundException e) { TempData["ErrorMessage"] = e.Message; return(new HttpStatusCodeResult(HttpStatusCode.NotFound, e.Message)); } }
public async Task <IActionResult> RemoveDuplicates(BankStatementViewModel BankStatementViewModel) { var list = await _bankStatementRepository.GetBankStatementTransactions(); var listTransactions = new List <Transaction>(); foreach (var item in list) { listTransactions.AddRange(item.Transactions); } await _bankStatementService.RemoveDuplicates(listTransactions); ViewData["removeDuplicates"] = "Remove Duplicates"; return(View("Create")); }
/// <summary> /// Get all movements (filter by account and accounting date range) /// </summary /// <returns></returns> public async Task <IEnumerable <Movement> > GetAllMovements(BankStatementViewModel bankStatement) { using (DatabaseContext context = new DatabaseContext()) { IQueryable <Movement> query = context.Movements .Include(m => m.Account) .Include(m => m.Category) .Include(m => m.Subcategory) .Include(m => m.Project) .Include(m => m.Invoice.CreditCard) .Where(m => m.Account.Id.Equals(bankStatement.Account)); if (bankStatement.Category.HasValue) { query = query.Where(m => m.Category.Id.Equals(bankStatement.Category.Value)); } if (bankStatement.Subcategory.HasValue) { query = query.Where(m => m.Subcategory.Id.Equals(bankStatement.Subcategory.Value)); } if (bankStatement.Project.HasValue) { query = query.Where(m => m.Project.Id.Equals(bankStatement.Project.Value)); } if (bankStatement.StartDate.HasValue) { query = query.Where(m => m.AccountingDate >= bankStatement.StartDate.Value); } if (bankStatement.EndDate.HasValue) { query = query.Where(m => m.AccountingDate <= bankStatement.EndDate.Value); } if (bankStatement.MovementStatus.HasValue) { query = query.Where(m => m.MovementStatus == bankStatement.MovementStatus.Value); } return(await query.ToListAsync()); } }
/// <summary> /// Get all movements (filter by account and accounting date range) /// </summary> /// <returns></returns> public async Task <IEnumerable <Movement> > GetAll(BankStatementViewModel bankStatement) { return(await _repository.GetAllMovements(bankStatement)); }