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.
127 lines
4.7 KiB
127 lines
4.7 KiB
using Common;
|
|
using Common.Helper;
|
|
using Common.KFTC;
|
|
using Common.Model;
|
|
using Common.Model.Resend;
|
|
using Newtonsoft.Json;
|
|
using Repository.Mobile;
|
|
using Repository.Resend;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Runtime.Remoting.Messaging;
|
|
|
|
namespace Business.Resend
|
|
{
|
|
public class ResendBusiness : IResendBusiness
|
|
{
|
|
private readonly IResendRepository _resendRepository;
|
|
private readonly IMobileServicesRepo _mobileRepository;
|
|
|
|
public ResendBusiness()
|
|
{
|
|
}
|
|
|
|
public ResendBusiness(IResendRepository resendRepository, IMobileServicesRepo mobileServicesRepo)
|
|
{
|
|
_resendRepository = resendRepository;
|
|
_mobileRepository = mobileServicesRepo;
|
|
}
|
|
|
|
public JsonRxResponse GetResendLists(DateFilterParams search, string customerId)
|
|
{
|
|
var tranList = _resendRepository.GetTransactionLists(search, customerId);
|
|
|
|
List<AccountDetails> lsAccount = _mobileRepository.GetPaymentAccountsByCustomer(customerId);
|
|
lsAccount.ForEach(x => x.KftcAccountId = Crypto.Encrypt(x.KftcAccountId, Utilities.ReadWebConfig("ktft_client_info_salt", "")));
|
|
tranList.ForEach(x => x.TranId = Crypto.Encrypt(x.TranId, Utilities.ReadWebConfig("ktft_client_info_salt", "")));
|
|
|
|
var str = new ResendTranList { Transactions = tranList, Accounts = lsAccount };
|
|
return new JsonRxResponse { ErrorCode = "0", Msg = "Success", Data = str };
|
|
}
|
|
|
|
public JsonRxResponse GetTransactionSummary(string id)
|
|
{
|
|
ResendReceiverDetail receiverDetail;
|
|
ExRateCalculateRequest rxDetail;
|
|
MobileRemitRequest remitRequest;
|
|
|
|
id = Crypto.Decrypt(id, Utilities.ReadWebConfig("ktft_client_info_salt", ""));
|
|
|
|
JsonRxResponse mreq = _resendRepository.GetRemitDetail(id, out rxDetail, out remitRequest, out receiverDetail);
|
|
if (mreq != null)
|
|
{
|
|
if (mreq.ErrorCode.Equals("0"))
|
|
{
|
|
var str = new ResendSummary();
|
|
|
|
var path = GetStatic.ReadWebConfig("ServiceType_Resource", "");
|
|
var text = File.ReadAllText(path);
|
|
List<ServiceTypeDetails> sd = JsonConvert.DeserializeObject<List<ServiceTypeDetails>>(text);
|
|
var lang = Convert.ToString(CallContext.GetData(Constants.Language));
|
|
if (string.IsNullOrEmpty(lang))
|
|
{
|
|
lang = "en";
|
|
}
|
|
|
|
var idx = sd.FindIndex(x => x.countryCode == lang);
|
|
var data = new ServiceTypeDetails();
|
|
if (idx < 0)
|
|
{
|
|
data = sd[sd.FindIndex(x => x.countryCode == "en")];
|
|
}
|
|
else
|
|
{
|
|
data = sd[idx];
|
|
}
|
|
|
|
foreach (var item in receiverDetail.deliveryMethod)
|
|
{
|
|
switch (receiverDetail.deliveryMethod)
|
|
{
|
|
case "cash payment":
|
|
rxDetail.serviceTypeDescription = data.cashPayment;
|
|
break;
|
|
|
|
case "bank deposit":
|
|
rxDetail.serviceTypeDescription = data.bankDeposit;
|
|
break;
|
|
|
|
case "mobile wallet":
|
|
rxDetail.serviceTypeDescription = data.mobileWallet;
|
|
break;
|
|
|
|
case "home delivery":
|
|
rxDetail.serviceTypeDescription = data.homeDelivery;
|
|
break;
|
|
|
|
case "card payment":
|
|
rxDetail.serviceTypeDescription = data.cardPayment;
|
|
break;
|
|
}
|
|
}
|
|
|
|
str.ExRate = rxDetail;
|
|
str.RemitDetail = remitRequest;
|
|
str.Receiver = receiverDetail;
|
|
return new JsonRxResponse { ErrorCode = "0", Msg = "Success", Data = str };
|
|
}
|
|
}
|
|
|
|
return new JsonRxResponse { ErrorCode = "1", Msg = mreq.Msg, Data = null };
|
|
}
|
|
}
|
|
|
|
internal class ResendTranList
|
|
{
|
|
public List<TranList> Transactions { get; set; }
|
|
public List<AccountDetails> Accounts { get; set; }
|
|
}
|
|
|
|
internal class ResendSummary
|
|
{
|
|
public ExRateCalculateRequest ExRate { get; set; }
|
|
public MobileRemitRequest RemitDetail { get; set; }
|
|
public ResendReceiverDetail Receiver { get; set; }
|
|
}
|
|
}
|