You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
4.7 KiB

1 year ago
  1. using Common;
  2. using Common.Helper;
  3. using Common.KFTC;
  4. using Common.Model;
  5. using Common.Model.Resend;
  6. using Newtonsoft.Json;
  7. using Repository.Mobile;
  8. using Repository.Resend;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.IO;
  12. using System.Runtime.Remoting.Messaging;
  13. namespace Business.Resend
  14. {
  15. public class ResendBusiness : IResendBusiness
  16. {
  17. private readonly IResendRepository _resendRepository;
  18. private readonly IMobileServicesRepo _mobileRepository;
  19. public ResendBusiness()
  20. {
  21. }
  22. public ResendBusiness(IResendRepository resendRepository, IMobileServicesRepo mobileServicesRepo)
  23. {
  24. _resendRepository = resendRepository;
  25. _mobileRepository = mobileServicesRepo;
  26. }
  27. public JsonRxResponse GetResendLists(DateFilterParams search, string customerId)
  28. {
  29. var tranList = _resendRepository.GetTransactionLists(search, customerId);
  30. List<AccountDetails> lsAccount = _mobileRepository.GetPaymentAccountsByCustomer(customerId);
  31. lsAccount.ForEach(x => x.KftcAccountId = Crypto.Encrypt(x.KftcAccountId, Utilities.ReadWebConfig("ktft_client_info_salt", "")));
  32. tranList.ForEach(x => x.TranId = Crypto.Encrypt(x.TranId, Utilities.ReadWebConfig("ktft_client_info_salt", "")));
  33. var str = new ResendTranList { Transactions = tranList, Accounts = lsAccount };
  34. return new JsonRxResponse { ErrorCode = "0", Msg = "Success", Data = str };
  35. }
  36. public JsonRxResponse GetTransactionSummary(string id)
  37. {
  38. ResendReceiverDetail receiverDetail;
  39. ExRateCalculateRequest rxDetail;
  40. MobileRemitRequest remitRequest;
  41. id = Crypto.Decrypt(id, Utilities.ReadWebConfig("ktft_client_info_salt", ""));
  42. JsonRxResponse mreq = _resendRepository.GetRemitDetail(id, out rxDetail, out remitRequest, out receiverDetail);
  43. if (mreq != null)
  44. {
  45. if (mreq.ErrorCode.Equals("0"))
  46. {
  47. var str = new ResendSummary();
  48. var path = GetStatic.ReadWebConfig("ServiceType_Resource", "");
  49. var text = File.ReadAllText(path);
  50. List<ServiceTypeDetails> sd = JsonConvert.DeserializeObject<List<ServiceTypeDetails>>(text);
  51. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  52. if (string.IsNullOrEmpty(lang))
  53. {
  54. lang = "en";
  55. }
  56. var idx = sd.FindIndex(x => x.countryCode == lang);
  57. var data = new ServiceTypeDetails();
  58. if (idx < 0)
  59. {
  60. data = sd[sd.FindIndex(x => x.countryCode == "en")];
  61. }
  62. else
  63. {
  64. data = sd[idx];
  65. }
  66. foreach (var item in receiverDetail.deliveryMethod)
  67. {
  68. switch (receiverDetail.deliveryMethod)
  69. {
  70. case "cash payment":
  71. rxDetail.serviceTypeDescription = data.cashPayment;
  72. break;
  73. case "bank deposit":
  74. rxDetail.serviceTypeDescription = data.bankDeposit;
  75. break;
  76. case "mobile wallet":
  77. rxDetail.serviceTypeDescription = data.mobileWallet;
  78. break;
  79. case "home delivery":
  80. rxDetail.serviceTypeDescription = data.homeDelivery;
  81. break;
  82. case "card payment":
  83. rxDetail.serviceTypeDescription = data.cardPayment;
  84. break;
  85. }
  86. }
  87. str.ExRate = rxDetail;
  88. str.RemitDetail = remitRequest;
  89. str.Receiver = receiverDetail;
  90. return new JsonRxResponse { ErrorCode = "0", Msg = "Success", Data = str };
  91. }
  92. }
  93. return new JsonRxResponse { ErrorCode = "1", Msg = mreq.Msg, Data = null };
  94. }
  95. }
  96. internal class ResendTranList
  97. {
  98. public List<TranList> Transactions { get; set; }
  99. public List<AccountDetails> Accounts { get; set; }
  100. }
  101. internal class ResendSummary
  102. {
  103. public ExRateCalculateRequest ExRate { get; set; }
  104. public MobileRemitRequest RemitDetail { get; set; }
  105. public ResendReceiverDetail Receiver { get; set; }
  106. }
  107. }