public async Task <FilterResultModel <PartnerPaymentListModel> > Handle(GetPartnerPaymentsListQuery request, CancellationToken cancellationToken)
        {
            var sortBy        = request.SortBy.Trim() != "" ? request.SortBy : "Date";
            var sortDirection = (request.SortDirection.ToUpper() == "DESCENDING") ? true : false;

            FilterResultModel <PartnerPaymentListModel> result = new FilterResultModel <PartnerPaymentListModel> ();

            var payments = _database.RentPayment
                           .Where(r => r.Partner != null)
                           .Select(PartnerPaymentListModel.Projection)
                           .Select(DynamicQueryHelper.GenerateSelectedColumns <PartnerPaymentListModel> (request.SelectedColumns))
                           .AsQueryable();

            if (request.Filter.Count() > 0)
            {
                payments = payments
                           .Where(DynamicQueryHelper
                                  .BuildWhere <PartnerPaymentListModel> (request.Filter)).AsQueryable();
            }

            result.Count = payments.Count();

            var PageSize   = (request.PageSize == 0) ? result.Count : request.PageSize;
            var PageNumber = (request.PageSize == 0) ? 1 : request.PageNumber;

            result.Items = payments.OrderBy(sortBy, sortDirection)
                           .Skip(PageNumber - 1)
                           .Take(PageSize)
                           .ToList();

            return(result);
        }
        public async Task <ActionResult <FilterResultModel <PartnerPaymentListModel> > > GetRemainingPartnerPayment([FromBody] GetPartnerPaymentsListQuery query)
        {
            var remainingPayments = await _Mediator.Send(query);

            return(Ok(remainingPayments));
        }