Exemplo n.º 1
0
        private IQueryable <Payment> FilterByCategory(IQueryable <Payment> payments, GetPaymentsQuery request)
        {
            if (!request.WithEmptyCategory)
            {
                return(payments);
            }

            return(payments.Where(payment => payment.Category == null));
        }
Exemplo n.º 2
0
        public async Task <IEnumerable <Payment> > Handle(GetPaymentsQuery request, CancellationToken cancellationToken)
        {
            IQueryable <Payment> payments = _accountingDbContext.Payments;

            payments = FilterByDate(payments, request);
            payments = FilterByPhrase(payments, request);
            payments = FilterByCategory(payments, request);

            return(await payments.ToArrayAsync(cancellationToken));
        }
Exemplo n.º 3
0
        private IQueryable <Payment> FilterByDate(IQueryable <Payment> payments, GetPaymentsQuery request)
        {
            if (request.DateTo == null && request.DateFrom == null)
            {
                return(payments);
            }

            return(payments.Where(payment =>
                                  (request.DateFrom == null || payment.Date >= request.DateFrom) &&
                                  (request.DateTo == null || payment.Date <= request.DateTo)));
        }
Exemplo n.º 4
0
        private IQueryable <Payment> FilterByPhrase(IQueryable <Payment> payments, GetPaymentsQuery request)
        {
            var ignoreDetails = string.IsNullOrWhiteSpace(request.WithPhraseInDetails);

            if (ignoreDetails)
            {
                return(payments);
            }

            return(payments.Where(payment => (payment.Details.FullDetails + payment.Details.Alias).Contains(request.WithPhraseInDetails, StringComparison.InvariantCultureIgnoreCase)));
            //return payments.Where(payment => IsDetailsValid(payment, request.WithPhraseInDetails));
        }