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

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