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.
494 lines
20 KiB
494 lines
20 KiB
using Common;
|
|
using Common.Helper;
|
|
using Common.Model;
|
|
using Common.Model.Config;
|
|
using Common.Model.MobileV2;
|
|
using log4net;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
using System.Runtime.Remoting.Messaging;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Repository.MobileV2
|
|
{
|
|
public class MobileV2Repo : IMobileV2Repo
|
|
{
|
|
private readonly Dao _dao = new Dao();
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(IMobileV2Repo));
|
|
|
|
|
|
public JsonRxResponse GetReceiverInformationV2(DateFilterParams search, string customerId, string countryid)
|
|
{
|
|
|
|
MyTransferDto myTransferDto = new MyTransferDto() { Receivers = new List<ReceiverV2>(), RecentTransactions = new List<TranHistoryResponse>() };
|
|
var lang = Convert.ToString(CallContext.GetData(Constants.Language));
|
|
JsonRxResponse jsonRx = new JsonRxResponse();
|
|
string viewOption = search.ViewAll;
|
|
try
|
|
{
|
|
var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION";
|
|
sql += " @flag = " + _dao.FilterString("receiver-info");
|
|
sql += ", @customerId = " + _dao.FilterString(customerId);
|
|
sql += ", @countryId = " + _dao.FilterString(countryid);
|
|
sql += ", @viewAll = " + _dao.FilterString(viewOption);
|
|
|
|
var dataSet = _dao.ExecuteDataset(sql);
|
|
List<ReceiverV2> rim = new List<ReceiverV2>();
|
|
|
|
|
|
List<ReceiverV2> receiverInfoModels = new List<ReceiverV2>();
|
|
var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_RECEIVER_INFORMATION_FAIL_1.ToString(), lang);
|
|
if (dataSet.Tables[0].Rows.Count > 0)
|
|
{
|
|
|
|
foreach (DataRow row in dataSet.Tables[0].Rows)
|
|
{
|
|
var s = GetReceiverInfoModel(row);
|
|
|
|
receiverInfoModels.Add(s);
|
|
}
|
|
|
|
var grpresulst = receiverInfoModels.GroupBy(g => new { g.fullName, g.mobile })
|
|
.Select(g => g.First())
|
|
.ToList();
|
|
|
|
|
|
grpresulst.ForEach(z =>
|
|
{
|
|
|
|
z.PaymentMethods = new List<ReceiverPaymentMethod>();
|
|
//var r = new ReceiverV2() { fullName = z.fullName, mobile = z.mobile, address = z.address, idNumber = z.idNumber, PaymentMethods = new List<ReceiverPaymentMethod>() };
|
|
z.PaymentMethods = receiverInfoModels.Where(a => a.fullName == z.fullName & a.mobile == z.mobile)
|
|
.Select(s => new ReceiverPaymentMethod()
|
|
{
|
|
receiverId = s.receiverId,
|
|
id = s.paymentMethod.id,
|
|
currency = s.paymentMethod.currency,
|
|
localizedName = s.paymentMethod.localizedName,
|
|
name = s.paymentMethod.name,
|
|
agent = s.agent,
|
|
isForceUpdate = s.isForceUpdate,
|
|
isPartnerChanged = s.isPartnerChanged,
|
|
ForceUpdateMsg = s.ForceUpdateMsg
|
|
,
|
|
hasVerifiedOTP = s.hasVerifiedOTP,
|
|
nativeCountry = s.nativeCountry,
|
|
nativeCountryCode = s.nativeCountryCode,
|
|
nativeCountryId = s.nativeCountryId,
|
|
payoutPartner = s.payoutPartner
|
|
}).ToList();
|
|
|
|
|
|
rim.Add(z);
|
|
|
|
});
|
|
myTransferDto.Receivers = rim;
|
|
|
|
}
|
|
|
|
var sql1 = "Exec mobile_proc_TranHistory @flag='tran-history-v2'";
|
|
sql1 += ", @customerId =" + _dao.FilterString(customerId);
|
|
sql1 += ", @viewAll =" + _dao.FilterString(viewOption);
|
|
|
|
|
|
Log.DebugFormat("GetReceiverInformation | SQL : {0}", sql);
|
|
|
|
if (search != null)
|
|
{
|
|
CultureInfo enUS = new CultureInfo("en-US");
|
|
if (!string.IsNullOrEmpty(search.FromDate))
|
|
{
|
|
DateTime FromDate;
|
|
if (DateTime.TryParseExact(search.FromDate, "dd/MM/yyyy", enUS, DateTimeStyles.AdjustToUniversal, out FromDate))
|
|
{
|
|
sql1 += ", @fromDate=" + _dao.FilterString(FromDate.ToString("yyyy-MM-dd"));
|
|
}
|
|
else
|
|
sql1 += ", @fromDate=" + _dao.FilterString(search.FromDate);
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(search.ToDate))
|
|
{
|
|
DateTime ToDate;
|
|
if (DateTime.TryParseExact(search.ToDate, "dd/MM/yyyy", enUS, DateTimeStyles.AdjustToUniversal, out ToDate))
|
|
{
|
|
sql1 += ", @toDate=" + _dao.FilterString(ToDate.ToString("yyyy-MM-dd"));
|
|
}
|
|
else
|
|
sql1 += ", @toDate=" + _dao.FilterString(search.ToDate);
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(search.Page))
|
|
sql1 += ", @pageNumber=" + _dao.FilterString(search.Page);
|
|
|
|
if (!string.IsNullOrEmpty(search.PageCount))
|
|
sql1 += ", @pageSize" + _dao.FilterString(search.PageCount);
|
|
}
|
|
Log.DebugFormat("GetTransactionHistory | SQL : {0}", sql1);
|
|
var ds = _dao.ExecuteDataset(sql1);
|
|
|
|
if (ds == null)
|
|
{
|
|
myTransferDto.RecentTransactions = null;
|
|
}
|
|
else
|
|
{
|
|
if (ds.Tables.Count > 1)
|
|
{
|
|
DataTable data = ds.Tables[1];
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
TranHistoryResponse tranHistoryResponse = new TranHistoryResponse()
|
|
{
|
|
User = Convert.ToString(dr["userId"]),
|
|
TranId = Convert.ToString(dr["tranId"]),
|
|
ControlNo = Convert.ToString(dr["controlNo"]),
|
|
CollAmt = Convert.ToString(dr["collAmount"]),
|
|
PayoutAmt = Utilities.ShowDecimal(Convert.ToString(dr["payoutAmt"])),
|
|
PCurr = Convert.ToString(dr["pCurr"]),
|
|
CollCurr = Convert.ToString(dr["collCurr"]),
|
|
PayStatus = Convert.ToString(dr["payStatus"]),
|
|
PayoutMode = Convert.ToString(dr["payoutMode"]),
|
|
SendDate = Convert.ToString(dr["sendDate"]),
|
|
PaidDate = Convert.ToString(dr["paidDate"]),
|
|
DisplayActions = dr["DisplayActions"].ToString(),
|
|
ColorIcon = GetColor(dr["payStatus"].ToString()),
|
|
ColorCode = GetColorCode(dr["payStatus"].ToString()),
|
|
TextCode = GetTextCode(dr["payStatus"].ToString()),
|
|
ReceiverId = Convert.ToString(dr["Receiverid"])
|
|
// PayoutAgent = Convert.ToString(dr["PayoutAgent"]),
|
|
};
|
|
myTransferDto.RecentTransactions.Add(tranHistoryResponse);
|
|
}
|
|
}
|
|
}
|
|
jsonRx.ErrorCode = "0";
|
|
jsonRx.Msg = "Success";
|
|
jsonRx.Data = myTransferDto;
|
|
|
|
return jsonRx;
|
|
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.DebugFormat($"Exception : {e.ToString()}");
|
|
jsonRx.ErrorCode = "1";
|
|
//jsonRx.Msg = "Failed";
|
|
|
|
//var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_RECEIVER_INFORMATION_FAIL_2.ToString(), lang);
|
|
jsonRx.Msg = $"Exception has occured at GetReceiverInformationV2";
|
|
return jsonRx;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private string GetColor(string status)
|
|
{
|
|
if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING"))
|
|
{
|
|
return "Blue";
|
|
}
|
|
else if (status.Equals("PROCESSING"))
|
|
{
|
|
return "Brown";
|
|
}
|
|
else if (status.Equals("PAID"))
|
|
{
|
|
return "Green";
|
|
}
|
|
else if (status.Equals("CANCELLED"))
|
|
{
|
|
return "Red";
|
|
}
|
|
else
|
|
return "Blue";
|
|
|
|
}
|
|
private string GetColorCode(string status)
|
|
{
|
|
if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING"))
|
|
{
|
|
return "#514e82";
|
|
}
|
|
else if (status.Equals("PROCESSING"))
|
|
{
|
|
return "#AF804F";
|
|
}
|
|
else if (status.Equals("PAID"))
|
|
{
|
|
return "#008000";
|
|
}
|
|
else if (status.Equals("CANCELLED"))
|
|
{
|
|
return "#FF0000";
|
|
}
|
|
else
|
|
return "#514e82";
|
|
|
|
// return "#FF0000";
|
|
|
|
}
|
|
|
|
private string GetTextCode(string status)
|
|
{
|
|
if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING"))
|
|
{
|
|
return "#FFFFFF";
|
|
}
|
|
else if (status.Equals("PROCESSING"))
|
|
{
|
|
return "#262262";
|
|
}
|
|
else if (status.Equals("PAID"))
|
|
{
|
|
return "#FFFFFF";
|
|
}
|
|
else if (status.Equals("CANCELLED"))
|
|
{
|
|
return "#FFFFFF";
|
|
}
|
|
else
|
|
return "#FFFFFF";
|
|
|
|
}
|
|
private ReceiverV2 GetReceiverInfoModel(DataRow row)
|
|
{
|
|
ReceiverInfoBranch b = null;
|
|
ReceiverInfoAgent a = null;
|
|
ReceiverInfoPaymentmethod p = null;
|
|
|
|
if (!string.IsNullOrWhiteSpace(Convert.ToString(row["branchId"])))
|
|
{
|
|
b = new ReceiverInfoBranch();
|
|
b.id = Convert.ToString(row["branchId"]);
|
|
b.name = Convert.ToString(row["branchName"]);
|
|
b.localizedName = Convert.ToString(row["branchLocalizedName"]);
|
|
}
|
|
|
|
//if (!string.IsNullOrWhiteSpace(Convert.ToString(row["bankId"])))
|
|
//{
|
|
a = new ReceiverInfoAgent();
|
|
a.id = Convert.ToString(row["bankId"]);
|
|
a.name = Convert.ToString(row["bankName"]);
|
|
a.localizedName = Convert.ToString(row["bankLocalizedName"]);
|
|
|
|
a.accountNo = Convert.ToString(row["accountNo"]);
|
|
a.currency = string.IsNullOrWhiteSpace(Convert.ToString(row["bankCurrency"])) ? null : Convert.ToString(row["bankCurrency"]).Split(',');
|
|
a.branch = b;
|
|
//}
|
|
|
|
p = new ReceiverInfoPaymentmethod();
|
|
//Commented by arjun
|
|
if (!string.IsNullOrWhiteSpace(Convert.ToString(row["paymentMethodId"])))
|
|
{
|
|
var country = Convert.ToString(row["country"]) ?? "English";
|
|
|
|
//var path = GetStatic.ReadWebConfig("ServiceType_Resource", "");
|
|
//var text = File.ReadAllText(path);
|
|
//List<ServiceTypeDetails> sd = JsonConvert.DeserializeObject<List<ServiceTypeDetails>>(text);
|
|
|
|
//var idx = sd.FindIndex(x => x.countryName.ToLower() == country.ToLower());
|
|
//var data = new ServiceTypeDetails();
|
|
//if (idx < 0)
|
|
//{
|
|
// data = sd[sd.FindIndex(x => x.countryCode == "en")];
|
|
//}
|
|
//else
|
|
//{
|
|
// data = sd[idx];
|
|
//}
|
|
|
|
p.id = Convert.ToString(row["paymentMethodId"]);
|
|
p.name = Convert.ToString(row["paymentMethodName"]);
|
|
|
|
//added by arjun
|
|
p.localizedName = Convert.ToString(row["paymentMethodName"]);
|
|
//if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Cash Payment".ToLower()))
|
|
//{
|
|
// p.localizedName = data.cashPayment;
|
|
//}
|
|
//else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Bank Deposit".ToLower()))
|
|
//{
|
|
// p.localizedName = data.bankDeposit;
|
|
//}
|
|
//else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Mobile Wallet".ToLower()))
|
|
//{
|
|
// p.localizedName = data.mobileWallet;
|
|
//}
|
|
//else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Home Delivery".ToLower()))
|
|
//{
|
|
// p.localizedName = data.homeDelivery;
|
|
//}
|
|
//else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Card Payment".ToLower()))
|
|
//{
|
|
// p.localizedName = data.cardPayment;
|
|
//}
|
|
|
|
p.currency = string.IsNullOrWhiteSpace(Convert.ToString(row["paymentMethodCurrency"])) ? null : Convert.ToString(row["paymentMethodCurrency"]).Split(',');
|
|
}
|
|
|
|
var s = new ReceiverV2();
|
|
s.receiverId = Convert.ToString(row["receiverId"]);
|
|
s.fullName = Convert.ToString(row["fullName"]);
|
|
s.firstName = Convert.ToString(row["firstName"]);
|
|
s.middleName = Convert.ToString(row["middleName"]);
|
|
s.lastName = Convert.ToString(row["lastName1"]);
|
|
|
|
s.localFullName = Convert.ToString(row["localizedName"]);
|
|
s.country = Convert.ToString(row["country"]);
|
|
s.countryId = Convert.ToString(row["countryId"]);
|
|
s.countryCode = Convert.ToString(row["countryCode"]);
|
|
s.address = Convert.ToString(row["address"]);
|
|
|
|
s.state = Convert.ToString(row["state"]);
|
|
s.stateId = Convert.ToString(row["stateId"]);
|
|
s.district = Convert.ToString(row["district"]);
|
|
s.districtId = Convert.ToString(row["districtId"]);
|
|
|
|
s.city = Convert.ToString(row["city"]);
|
|
s.email = Convert.ToString(row["email"]);
|
|
s.mobile = Convert.ToString(row["mobile"]);
|
|
s.relationship = Convert.ToString(row["relationship"]);
|
|
s.relationshipId = Convert.ToString(row["relationshipId"]);
|
|
s.district = Convert.ToString(row["district"]);
|
|
s.purposeOfRemit = Convert.ToString(row["purposeOfRemit"]);
|
|
s.purposeOfRemitId = Convert.ToString(row["purposeOfRemitId"]);
|
|
s.idType = Convert.ToString(row["idType"]);
|
|
s.idTypeId = Convert.ToString(row["idTypeId"]);
|
|
s.idNumber = Convert.ToString(row["idNumber"]);
|
|
|
|
s.localFirstName = Convert.ToString(row["localFirstName"]);
|
|
s.localMiddleName = Convert.ToString(row["localMiddleName"]);
|
|
s.localLastName = Convert.ToString(row["localLastName1"]);
|
|
|
|
s.payoutPartner = Convert.ToString(row["payoutPartner"]);
|
|
s.nativeCountry = Convert.ToString(row["nativeCountry"]);
|
|
s.nativeCountryCode = Convert.ToString(row["nativeCountryCode"]);
|
|
s.nativeCountryId = Convert.ToString(row["nativeCountryId"]);
|
|
s.hasVerifiedOTP = Convert.ToBoolean(row["isOTPVerified"]);
|
|
s.isForceUpdate = Convert.ToString(row["isForceUpdate"]);
|
|
if (row.Table.Columns.Contains("IsAccountValidation"))
|
|
{
|
|
s.IsAccountValidationReq = Convert.ToString(row["IsAccountValidation"]);
|
|
}
|
|
if (row.Table.Columns.Contains("ApiBankCode"))
|
|
{
|
|
s.ApiBankCode = Convert.ToString(row["ApiBankCode"]);
|
|
}
|
|
|
|
s.isPartnerChanged = string.IsNullOrEmpty(a.id) ? "1" : "0";
|
|
if (s.countryId.Equals("151") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("1"))
|
|
{
|
|
s.isPartnerChanged = "0";
|
|
}
|
|
else if (s.countryId.Equals("203") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("12"))
|
|
{
|
|
s.isPartnerChanged = "0";
|
|
}
|
|
|
|
if (s.countryId.Equals("151") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("2") && !string.IsNullOrWhiteSpace(a.id))
|
|
{
|
|
s.isPartnerChanged = "0";
|
|
}
|
|
|
|
s.paymentMethod = p;
|
|
s.agent = a;
|
|
return s;
|
|
}
|
|
|
|
public JsonRxResponse SaveProfile(string username, string url, string fileName, string fileType)
|
|
{
|
|
// JsonRxResponse jsonRx = new JsonRxResponse();
|
|
var sql = "EXEC mobile_proc_customerMaster";
|
|
sql += " @flag = " + _dao.FilterString("save-profile");
|
|
sql += ", @username = " + _dao.FilterString(username);
|
|
sql += ", @url = " + _dao.FilterString(url);
|
|
sql += ", @fileType = " + _dao.FilterString(fileType);
|
|
sql += ", @fileName = " + _dao.FilterString(fileName);
|
|
Log.DebugFormat("SaveProfile | SQL : {0}", sql);
|
|
var _dbRes = _dao.ParseDbResult(sql);
|
|
|
|
return new JsonRxResponse
|
|
{
|
|
ErrorCode = _dbRes.ResponseCode,
|
|
Msg = _dbRes.Msg,
|
|
Extra = _dbRes.Id
|
|
};
|
|
}
|
|
|
|
public DataRow GetMembershipId(string customerId)
|
|
{
|
|
var sql = "EXEC mobile_proc_customerMaster @flag= 'get-membershipId'";
|
|
sql += ", @userId = " + _dao.FilterString(customerId);
|
|
|
|
Log.DebugFormat("GetMembershipId | SQL:{0}", sql);
|
|
|
|
return _dao.ExecuteDataRow(sql);
|
|
}
|
|
|
|
|
|
public DataRow GetProfileDetails(string customerId)
|
|
{
|
|
var sql = "EXEC mobile_proc_customerMaster @flag= 'get-profile-details'";
|
|
sql += ", @email = " + _dao.FilterString(customerId);
|
|
|
|
Log.DebugFormat("GetProfileDetails | SQL:{0}", sql);
|
|
|
|
return _dao.ExecuteDataRow(sql);
|
|
}
|
|
public JsonRxResponse SaveKycSettings(KycOption kycOption)
|
|
{
|
|
var sql = "EXEC JsonRx_Proc_UserRegistration @flag='save-kyc-option'";
|
|
sql += ", @username = " + _dao.FilterString(kycOption.UserId);
|
|
sql += ", @registrationType = " + _dao.FilterString(kycOption.RegistrationType);
|
|
sql += ", @clientId = " + _dao.FilterString(kycOption.Code);
|
|
|
|
Log.DebugFormat("SaveKycSettings | SQL : {0}", sql);
|
|
var _dbRes = _dao.ParseDbResult(sql);
|
|
|
|
return new JsonRxResponse
|
|
{
|
|
ErrorCode = _dbRes.ResponseCode,
|
|
Msg = _dbRes.Msg,
|
|
Extra = _dbRes.Id
|
|
};
|
|
}
|
|
|
|
public DataRow GetResidenceType(string customerId)
|
|
{
|
|
var sql = "EXEC mobile_proc_customerMaster @flag= 'get-ResidenceType'";
|
|
sql += ", @username = " + _dao.FilterString(customerId);
|
|
|
|
Log.DebugFormat("GetMembershipId | SQL:{0}", sql);
|
|
|
|
return _dao.ExecuteDataRow(sql);
|
|
}
|
|
|
|
public JsonRxResponse UpdateCustomerProfile(CustomerDetailV2 req)
|
|
{
|
|
var sql = "EXEC mobile_proc_online_customerMaster_V1 @flag= 'update-address'";
|
|
sql += ", @customerId = " + _dao.FilterString(req.UserId);
|
|
sql += ", @postalCode = " + _dao.FilterString(req.PostalCode);
|
|
sql += ", @address1 = " + _dao.FilterString(req.Address1);
|
|
sql += ", @address2 = " + _dao.FilterString(req.Address2);
|
|
|
|
Log.DebugFormat("UpdateProfile | SQL:{0}", sql);
|
|
|
|
var _dbRes = _dao.ParseDbResult(sql);
|
|
|
|
return new JsonRxResponse
|
|
{
|
|
ErrorCode = _dbRes.ResponseCode,
|
|
Msg = _dbRes.Msg,
|
|
Extra = _dbRes.Id
|
|
};
|
|
}
|
|
}
|
|
}
|