public async Task AddCard(CreditCardDoc item) { try { await _context.CreditAccounts.InsertOneAsync(item); } catch (Exception ex) { // log or manage the exception throw ex; } }
private CreditCard FetchCardUpdate(CreditCardDoc outdatedCard, IAccountProvider dataProvider) { var accountDescriptor = AutoMapper.Mapper.Map <CreditCardDescriptor>(outdatedCard); var startTime = outdatedCard.UpdatedOn; var endTime = DateTime.Now.AddMonths(1); var card = ((ICreditCardProvider)dataProvider) .GetCardsWithTransactions(new List <CreditCardDescriptor> { accountDescriptor }, startTime, endTime).FirstOrDefault(); return(card); }
private async Task <IEnumerable <TransactionDoc> > UpdateNewTransactions( CreditCardDoc account, IEnumerable <BankTransaction> transactions, DateTime date) { var newTransactions = AutoMapper.Mapper.Map <IEnumerable <TransactionDoc> >(transactions).ToList(); //account.Transactions.ToList() // .RemoveAll(t => t.PaymentDate.Year.Equals(date.Year) && t.PaymentDate.Month.Equals(date.Month)); //account.Transactions = newTransactions; await _creditAccountRepository.UpdateCard(account.Id, account); return(newTransactions); }
private void GenerateNetWorthFromCredit(CreditCardDoc account, Dictionary <string, Decimal> incomes, Dictionary <string, Decimal> expenses) { incomes.Add(account.LastDigits, 0); expenses.Add(account.LastDigits, 0); foreach (var transaction in account.Transactions.Where(t => t.PaymentDate.IsInThisMonth())) { if (transaction.Type == TransactionType.Income) { incomes[account.LastDigits] += Math.Abs(transaction.Amount); } else if (transaction.Type == TransactionType.Expense) { expenses[account.CardNumber] += Math.Abs(transaction.Amount); } } }
public async Task <bool> UpdateCard(String id, CreditCardDoc account) { try { account.UpdatedOn = DateTime.Now; ReplaceOneResult actionResult = await _context.CreditAccounts.ReplaceOneAsync(a => a.Id.Equals(id), account, new UpdateOptions { IsUpsert = true }); return(actionResult.IsAcknowledged && actionResult.ModifiedCount > 0); } catch (Exception ex) { // log or manage the exception throw ex; }; }