Пример #1
0
        public async Task <JsonResult> GetPaymentReceiptDetails([FromBody] PaymentReceiptFilterBO paymentReceiptFilterBO)
        {
            var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken);

            var auditLogBO            = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor);
            var paymentReceiptDetails = await _paymentService.GetPaymentReceiptDetails(paymentReceiptFilterBO, auditLogBO);

            return(new JsonResult(paymentReceiptDetails));
        }
Пример #2
0
        /// <summary>
        /// Gets the payment receipt details.
        /// </summary>
        /// <param name="paymentReceiptFilterBO">The payment receipt filter bo.</param>
        /// <param name="auditLogBO">The audit log bo.</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public async Task <IEnumerable <MemberPaymentReceiptDetailsBO> > GetPaymentReceiptDetails(PaymentReceiptFilterBO paymentReceiptFilterBO, AuditLogBO auditLogBO)
        {
            var memberRepo = _unitOfWork.GetRepository <Member>();
            var memberPaymentDetailsRepo = _unitOfWork.GetRepository <MemberPaymentDetail>();
            var member = await memberRepo.GetFirstOrDefaultAsync(a => a, b => b.UserId == paymentReceiptFilterBO.UserId);

            var memberPayment = await memberPaymentDetailsRepo.GetPagedListAsync(a => a,
                                                                                 predicate : b => b.MemberId == member.MemberId && b.Status.Trim() == MemberConstants.TransactionStatus,
                                                                                 pageIndex : BrokerConstants.PAGE_INDEX, pageSize : BrokerConstants.PAGE_SIZE);

            var memberSubscription = await _unitOfWork.GetRepository <MemberSubscription>().GetFirstOrDefaultAsync(a => a,
                                                                                                                   predicate: ms => ms.MemberId == member.MemberId);

            var paymentReceiptDetailsBO = MemberMapper.Map(memberPayment, memberSubscription.DocumentId);

            //Sorting logic for receipts
            if (!string.IsNullOrWhiteSpace(paymentReceiptFilterBO.SortColumn))
            {
                if (paymentReceiptFilterBO.StartDate == null)
                {
                    paymentReceiptFilterBO.StartDate = DateTime.MinValue;
                }

                if (paymentReceiptFilterBO.ToDate == null)
                {
                    paymentReceiptFilterBO.ToDate = DateTime.MaxValue;
                }

                switch (Regex.Replace(paymentReceiptFilterBO.SortColumn, @"\s+", ""))
                {
                case MemberConstants.PaidDate:
                    paymentReceiptDetailsBO = paymentReceiptFilterBO.IsSortByDesc ?
                                              paymentReceiptDetailsBO.Where(x => x.PaidDate >= paymentReceiptFilterBO.StartDate.Value && x.PaidDate <= paymentReceiptFilterBO.ToDate.Value)
                                              .OrderByDescending(x => x.PaidDate).ToList()
                            : paymentReceiptDetailsBO.Where(x => x.PaidDate >= paymentReceiptFilterBO.StartDate.Value && x.PaidDate <= paymentReceiptFilterBO.ToDate.Value).
                                              OrderBy(x => x.PaidDate).ToList();

                    break;

                case MemberConstants.PaymentMethod:
                    paymentReceiptDetailsBO = paymentReceiptFilterBO.IsSortByDesc ?
                                              paymentReceiptDetailsBO.Where(x => x.PaidDate >= paymentReceiptFilterBO.StartDate.Value && x.PaidDate <= paymentReceiptFilterBO.ToDate.Value).
                                              OrderByDescending(x => x.PaymentMethod).ToList()
                            : paymentReceiptDetailsBO.Where(x => x.PaidDate >= paymentReceiptFilterBO.StartDate.Value && x.PaidDate <= paymentReceiptFilterBO.ToDate.Value).
                                              OrderBy(x => x.PaymentMethod).ToList();

                    break;

                case MemberConstants.Amount:
                    paymentReceiptDetailsBO = paymentReceiptFilterBO.IsSortByDesc ?
                                              paymentReceiptDetailsBO.Where(x => x.PaidDate >= paymentReceiptFilterBO.StartDate.Value && x.PaidDate <= paymentReceiptFilterBO.ToDate.Value)
                                              .OrderByDescending(x => x.Amount).ToList()
                            : paymentReceiptDetailsBO.Where(x => x.PaidDate >= paymentReceiptFilterBO.StartDate.Value && x.PaidDate <= paymentReceiptFilterBO.ToDate.Value)
                                              .OrderBy(x => x.Amount).ToList();

                    break;

                default:
                    break;
                }
                var totalRecordsCount = paymentReceiptDetailsBO.Count;
                paymentReceiptDetailsBO.ForEach(p => p.TotalRecordsCount = totalRecordsCount);
                if (paymentReceiptFilterBO.RecordsPerPage > 0)
                {
                    var pageStartCount = (paymentReceiptFilterBO.PageNumber - 1) * paymentReceiptFilterBO.RecordsPerPage;
                    paymentReceiptDetailsBO = paymentReceiptDetailsBO.Skip(pageStartCount).Take(paymentReceiptFilterBO.RecordsPerPage).ToList();
                }
            }

            //Log audit for update action on Payment Information
            //await AuditMapper.AuditLogging(auditLogBO, paymentReceiptFilterBO.UserId, AuditAction.Update, paymentReceiptFilterBO);
            return(paymentReceiptDetailsBO);
        }
Пример #3
0
 /// <summary>
 /// Gets the payment receipt details.
 /// </summary>
 /// <param name="paymentReceiptFilterBO">The payment receipt filter bo.</param>
 /// <param name="auditLogBO">The audit log bo.</param>
 /// <returns></returns>
 /// <exception cref="CustomException">PaymentServiceGetPaymentReceiptDetailsInputEmptyErrorCode</exception>
 public Task <IEnumerable <MemberPaymentReceiptDetailsBO> > GetPaymentReceiptDetails(PaymentReceiptFilterBO paymentReceiptFilterBO, AuditLogBO auditLogBO)
 {
     if (paymentReceiptFilterBO == null)
     {
         throw new CustomException(nameof(MemberConstants.PaymentServiceGetPaymentReceiptDetailsInputEmptyErrorCode));
     }
     return(_paymentDataAccess.GetPaymentReceiptDetails(paymentReceiptFilterBO, auditLogBO));
 }