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)); }
/// <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); }
/// <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)); }