|
|
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(); try { var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION"; sql += " @flag = " + _dao.FilterString("receiver-info"); sql += ", @customerId = " + _dao.FilterString(customerId); sql += ", @countryId = " + _dao.FilterString(countryid);
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);
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()), // 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 }; } } }
|