private Expression <Func <PaymentLogEntryDbModel, bool> > ComposeFilter(PaymentLogsFilter filter)
        {
            var exp = base.ComposeBaseFilter <PaymentLogEntryDbModel>(filter);

            if (!string.IsNullOrWhiteSpace(filter.RecieverId))
            {
                exp = PredicateExtensions.And(exp, entry => entry.RecieverId.ToLower().Contains(filter.RecieverId.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(filter.SenderId))
            {
                exp = PredicateExtensions.And(exp, entry => entry.SenderId.ToLower().Contains(filter.SenderId.ToLower()));
            }

            if (filter.MinTransfer.HasValue)
            {
                exp = PredicateExtensions.And(exp, entry => entry.Transfer >= filter.MinTransfer.Value);
            }

            if (filter.MaxTransfer.HasValue)
            {
                exp = PredicateExtensions.And(exp, entry => entry.Transfer <= filter.MaxTransfer.Value);
            }

            return(exp);
        }
        public async Task <IEnumerable <PaymentLogEntry> > GetLogsAsync(PaymentLogsFilter filter)
        {
            var dbModels =
                await Context
                .PaymentLogEntries
                .Where(ComposeFilter(filter))
                .ToListAsync()
                .ConfigureAwait(false);

            return(Mapper.Map <IEnumerable <PaymentLogEntry> >(dbModels));
        }
        public async Task <IActionResult> GetPaymentLogs([FromQuery] PaymentLogsFilter filter)
        {
            var result = await _loggingService.GetLogsAsync(filter);

            return(Ok(result));
        }