Example #1
0
        public async Task <IEnumerable <Payment> > GetSome(BaseFilter filter)
        {
            var list  = new List <Payment>();
            var types = await GetTypes();

            var cards = await _creditCardRepository.GetSome(filter);

            await Query <Installment>(PaymentResources.Some, (p, i) =>
            {
                var pay = list.FirstOrDefault(x => x.Id == p.Id);
                if (pay == null)
                {
                    pay = p;
                    if (p.CreditCardId.HasValue)
                    {
                        p.CreditCard = cards.FirstOrDefault(c => c.Id == p.CreditCardId.Value);
                    }
                    list.Add(p);
                    pay.Type         = types.FirstOrDefault(t => t.Id == (int)p.TypeId);
                    pay.Installments = new List <Installment>();
                }
                pay.Installments.Add(i);
                return(p);
            }, filter);

            return(list);
        }
        public async Task <IEnumerable <RecurringExpense> > GetSome(BaseFilter filter)
        {
            var list  = new List <RecurringExpense>();
            var cards = await _creditCardRepository.GetSome(filter);

            await Query <RecurringExpenseHistory>(RecurringExpenseResources.Some, (p, i) =>
            {
                var recurringExpense = list.FirstOrDefault(x => x.Id == p.Id);
                if (recurringExpense == null)
                {
                    recurringExpense = p;
                    list.Add(recurringExpense);
                    if (recurringExpense.CreditCardId.HasValue)
                    {
                        recurringExpense.CreditCard = cards.FirstOrDefault(p => p.Id == recurringExpense.CreditCardId.Value);
                    }
                    recurringExpense.History = new List <RecurringExpenseHistory>();
                }
                if (i != null)
                {
                    recurringExpense.History.Add(i);
                }
                return(p);
            }, filter);

            list.ForEach(p => p.SortHistory());
            return(list);
        }
Example #3
0
        public async Task <ResultDataModel <Dictionary <string, PaymentProjectionResultModel> > > GetProjection(int userId, int month, int year)
        {
            var result     = new ResultDataModel <Dictionary <string, PaymentProjectionResultModel> >();
            var baseFilter = new BaseFilter()
            {
                UserId = userId
            };
            var types = await _paymentRepository.GetTypes();

            var cards = await _creditCardRepository.GetSome(baseFilter);

            var dates = LoadDates(month, year);
            var list  = new List <PaymentProjectionModel>();

            await FillBenefits(list, dates, types, baseFilter);
            await FillPayments(list, dates, types, cards, baseFilter);
            await FillVehicleExpenses(list, dates, types, baseFilter);
            await FillHouseholdExpense(list, dates, types, baseFilter);
            await FillRecurringExpenses(list, dates, types, cards, baseFilter);
            await FillRemainingBalance(list, dates, types, cards, baseFilter);

            dates.OrderBy(p => p.Ticks).ToList().ForEach(date =>
            {
                var monthYear   = date.ToString("MM/yyyy");
                var resultModel = new PaymentProjectionResultModel();
                resultModel.Payments.AddRange(list.Where(p => p.MonthYear == monthYear));
                result.Data.Add(monthYear, resultModel);
                resultModel.AccumulatedValue = result.Data.Values.Sum(p => p.Total + p.PreviousMonthBalanceValue);
            });

            return(result);
        }
Example #4
0
        public bool CreditCardExists(CreditCard card)
        {
            var cards = _creditCardRepository.GetSome(new BaseFilter()
            {
                UserId = card.UserId
            }).Result;

            return(cards.Any(p => p.Id == card.Id));
        }
 private bool ValidCreditCard(RecurringExpense recurringExpense)
 {
     if (recurringExpense.CreditCardId > 0)
     {
         var card = _creditCardRepository.GetSome(new BaseFilter()
         {
             UserId = recurringExpense.UserId
         }).Result.FirstOrDefault(p => p.Id == recurringExpense.CreditCardId.Value);
         if (card == null || card.UserId != recurringExpense.UserId)
         {
             return(false);
         }
     }
     else
     {
         recurringExpense.CreditCardId = null;
     }
     return(true);
 }
Example #6
0
 private bool ValidCreditCard(Payment payment)
 {
     if (payment.CreditCardId > 0)
     {
         var card = _creditCardRepository.GetSome(new BaseFilter()
         {
             UserId = payment.UserId
         }).Result.FirstOrDefault(p => p.Id == payment.CreditCardId.Value);
         if (card == null || card.UserId != payment.UserId)
         {
             return(false);
         }
     }
     else
     {
         payment.CreditCardId = null;
     }
     return(true);
 }
Example #7
0
 public async Task <ResultDataModel <IEnumerable <CreditCard> > > GetByUser(int userId) => new ResultDataModel <IEnumerable <CreditCard> >(await _creditCardRepository.GetSome(new BaseFilter()
 {
     UserId = userId
 }));