Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 4
0
        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"));
        }
Exemplo n.º 5
0
        /// <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));
 }