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); }
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); }
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); }
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); }
public async Task <ResultDataModel <IEnumerable <CreditCard> > > GetByUser(int userId) => new ResultDataModel <IEnumerable <CreditCard> >(await _creditCardRepository.GetSome(new BaseFilter() { UserId = userId }));