Example #1
0
 public async Task AddCard(CreditCardDoc item)
 {
     try
     {
         await _context.CreditAccounts.InsertOneAsync(item);
     }
     catch (Exception ex)
     {
         // log or manage the exception
         throw ex;
     }
 }
Example #2
0
        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);
        }
Example #4
0
 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);
         }
     }
 }
Example #5
0
        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;
            };
        }