using Newtonsoft.Json; using Swift.DAL.OnlineAgent; using Swift.DAL.Remittance.Administration.ReceiverInformation; using Swift.DAL.SwiftDAL; using Swift.web.Library; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web.Script.Serialization; namespace Swift.web.Remit.Administration.CustomerSetup.Benificiar { public partial class Manage : System.Web.UI.Page { private readonly RemittanceLibrary _sl = new RemittanceLibrary(); private readonly OnlineCustomerDao _cd = new OnlineCustomerDao(); private readonly ReceiverInformationDAO _receiver = new ReceiverInformationDAO(); private const string ViewFunctionId = "20111300"; private const string ViewFunctionIdAgent = "40120000"; private const string ViewBenificiaryFunctionId = "20111370"; private const string AddBenificiaryFunctionId = "20111380"; private const string EditBenificiaryFunctionId = "20111390"; private const string ViewBenificiaryFunctionIdAgent = "40120070"; private const string AddBenificiaryFunctionIdAgent = "40120080"; private const string EditBenificiaryFunctionIdAgent = "40120090"; private const string sendPageFunctionId = "40101450"; protected void Page_Load(object sender, EventArgs e) { Authenticate(); if (GetReceiverAddType().ToLower() == "s") { receiverList.Visible = false; } receiverAccountNo.Attributes.Add("hidden", "hidden"); if (!IsPostBack) { string reqMethod = Request.Form["MethodName"]; switch (reqMethod) { case "PaymentModePcountry": LoadPaymentModeFromAjax(); break; case "PopulatePaymentMode": LoadPaymentModeDDL(); //PopulatePaymentModeAndPayoutPartner(); break; case "PopulatePayoutPartner": LoadPayoutPartner(); break; case "SaveReceiverDetails": SaveReceiverDetails(); break; } var a = otherRelationshipTextBox.Text; if (a == "") { otherRelationDiv.Attributes.Add("style", "display:none"); } string customerId = GetStatic.ReadQueryString("customerId", ""); var result = _cd.GetCustomerDetails(customerId, GetStatic.GetUser()); if (result != null) { hideCustomerId.Value = customerId; hideMembershipId.Value = result["membershipId"].ToString(); txtCustomerName.InnerText = result["firstName"].ToString() + ' ' + result["middleName"].ToString() + ' ' + result["lastName1"].ToString(); } string receiverId = GetStatic.ReadQueryString("receiverId", ""); PopulateDDL(); if (receiverId != "") { PopulateForm(receiverId); } } } private void SaveReceiverDetails() { string receiverId = GetStatic.ReadQueryString("receiverId", ""); if (GetReceiverAddType().ToLower() != "s") { if (receiverId == "") { if (!_sl.HasRight(GetFunctionIdByUserType(AddBenificiaryFunctionIdAgent, AddBenificiaryFunctionId))) { DbResult Result = new DbResult() { ErrorCode = "1", Msg = "You are not authorized to Edit Receiver!" }; //GetStatic.AlertMessage(this, "You are not authorized to Add Receiver!"); //return; var jsonString1 = JsonConvert.SerializeObject(Result); Response.ContentType = "application/json"; Response.Write(jsonString1); Response.End(); } } else { if (!_sl.HasRight(GetFunctionIdByUserType(EditBenificiaryFunctionIdAgent, EditBenificiaryFunctionId))) { DbResult Result = new DbResult() { ErrorCode = "1", Msg = "You are not authorized to Edit Receiver!" }; //GetStatic.AlertMessage(this, "You are not authorized to Add Receiver!"); //return; var jsonString2 = JsonConvert.SerializeObject(Result); Response.ContentType = "application/json"; Response.Write(jsonString2); Response.End(); //GetStatic.AlertMessage(this, "You are not authorized to Edit Receiver!"); //return; } } } var PaymentModeValue = Request.Form["paymentMode"].ToString(); BenificiarData benificiar = new BenificiarData(); benificiar.Country = Request.Form["Country"].ToString(); benificiar.NativeCountry = Request.Form["nativeCountry"].ToString(); benificiar.BenificiaryType = Request.Form["BenificiaryType"].ToString(); benificiar.Email = Request.Form["Email"].ToString(); benificiar.ReceiverFName = Request.Form["ReceiverFName"].ToString(); benificiar.ReceiverMName = Request.Form["ReceiverMName"].ToString(); benificiar.ReceiverLName = Request.Form["ReceiverLName"].ToString(); benificiar.ReceiverAddress = Request.Form["ReceiverAddress"].ToString(); benificiar.ReceiverCity = Request.Form["ReceiverCity"].ToString(); benificiar.ContactNo = Request.Form["ContactNo"].ToString(); benificiar.SenderMobileNo = Request.Form["SenderMobileNo"].ToString(); benificiar.Relationship = Request.Form["Relationship"].ToString(); benificiar.PlaceOfIssue = Request.Form["PlaceOfIssue"].ToString(); benificiar.TypeId = Request.Form["TypeId"].ToString(); benificiar.TypeValue = Request.Form["TypeValue"].ToString(); benificiar.PurposeOfRemitance = Request.Form["PurposeOfRemitance"].ToString(); benificiar.PaymentMode = Request.Form["PaymentMode"].ToString(); benificiar.PayoutPatner = Request.Form["PayoutPatner"].ToString(); benificiar.BenificaryAc = Request.Form["BenificaryAc"].ToString(); benificiar.BankLocation = Request.Form["BankLocation"].ToString(); benificiar.BankName = Request.Form["BankName"].ToString(); benificiar.BenificaryAc = Request.Form["BenificaryAc"].ToString(); benificiar.Remarks = Request.Form["Remarks"].ToString(); benificiar.OtherRelationDescription = Request.Form["OtherRelationDescription"].ToString(); benificiar.membershipId = Request.Form["membershipId"].ToString(); benificiar.ReceiverId = Request.Form["ReceiverId"].ToString(); benificiar.customerId = (Request.Form["hideCustomerId"].ToString() != "" ? Request.Form["hideCustomerId"].ToString() : null); benificiar.Flag = (Request.Form["hideBenificialId"].ToString() != "" ? "u" : "i"); var dbResult = _cd.UpdateBenificiarInformation(benificiar, GetStatic.GetUser()); if (dbResult.ErrorCode == "0") { if (GetReceiverAddType().ToLower() != "s") { GetStatic.SetMessage(dbResult); } } var jsonString = JsonConvert.SerializeObject(dbResult); Response.ContentType = "application/json"; Response.Write(jsonString); Response.End(); } private void LoadPayoutPartner() { var countryId = Request.Form["country"]; var paymentModeVal = Request.Form["paymentMode"]; var sql = "EXEC proc_sendPageLoadData @flag='recAgentByRecModeAjaxagentAndCountry', @countryId = '" + GetStatic.ReadWebConfig("domesticCountryId", "") + "',@pCountryId='" + countryId + "',@param = '" + paymentModeVal + "',@agentId='" + GetStatic.GetAgentId() + "',@user = '" + GetStatic.GetUser() + "'"; var payoutPartnerList = _cd.ExecuteDataTable(sql); var payoutPartnerDdl = Mapper.DataTableToClass(payoutPartnerList); var jsonString = JsonConvert.SerializeObject(payoutPartnerDdl); Response.ContentType = "application/json"; Response.Write(jsonString); Response.End(); } private void LoadPaymentModeDDL() { var country = Request.Form["country"]; var sql = "EXEC proc_online_sendPageLoadData @flag='payoutMethods'"; sql += ",@country=" + _cd.FilterString(country); var paymentList = _cd.ExecuteDataTable(sql); var paymentDdl = Mapper.DataTableToClass(paymentList); var jsonString = JsonConvert.SerializeObject(paymentDdl); Response.ContentType = "application/json"; Response.Write(jsonString); Response.End(); } public static class Mapper { public static IList DataTableToClass(DataTable Table) where T : class, new() { var dataList = new List(Table.Rows.Count); Type classType = typeof(T); IList propertyList = classType.GetProperties(); if (propertyList.Count == 0) return new List(); List columnNames = Table.Columns.Cast().Select(column => column.ColumnName).ToList(); try { foreach (DataRow dataRow in Table.AsEnumerable().ToList()) { var classObject = new T(); foreach (PropertyInfo property in propertyList) { if (property != null && property.CanWrite) { if (columnNames.Contains(property.Name)) { if (dataRow[property.Name] != System.DBNull.Value) { object propertyValue = System.Convert.ChangeType( dataRow[property.Name], property.PropertyType ); property.SetValue(classObject, propertyValue, null); } } } } dataList.Add(classObject); } return dataList; } catch { return new List(); } } } private void Authenticate() { if (GetReceiverAddType().ToLower() == "s") { _sl.CheckAuthentication(sendPageFunctionId); } else { _sl.CheckAuthentication(GetFunctionIdByUserType(ViewFunctionIdAgent, ViewFunctionId) + "," + GetFunctionIdByUserType(ViewBenificiaryFunctionIdAgent, ViewBenificiaryFunctionId)); string receiverId = GetStatic.ReadQueryString("receiverId", ""); if (receiverId == "") { register.Enabled = _sl.HasRight(GetFunctionIdByUserType(AddBenificiaryFunctionIdAgent, AddBenificiaryFunctionId)); register.Visible = _sl.HasRight(GetFunctionIdByUserType(AddBenificiaryFunctionIdAgent, AddBenificiaryFunctionId)); } else { register.Enabled = _sl.HasRight(GetFunctionIdByUserType(EditBenificiaryFunctionIdAgent, EditBenificiaryFunctionId)); register.Visible = _sl.HasRight(GetFunctionIdByUserType(EditBenificiaryFunctionIdAgent, EditBenificiaryFunctionId)); } } } private void PopulateForm(string id) { var dr = _receiver.SelectReceiverInformationByReceiverId(GetStatic.GetUser(), id); if (null != dr) { string countryId = dr["countryId"].ToString(); ddlCountry.SelectedValue = countryId; ddlBenificiaryType.SelectedValue = dr["receiverType"].ToString(); txtEmail.Text = dr["email"].ToString(); txtReceiverFName.Text = dr["firstName"].ToString(); txtReceiverLName.Text = dr["lastName1"].ToString(); txtReceiverMName.Text = dr["middleName"].ToString(); txtReceiverAddress.Text = dr["address"].ToString(); txtReceiverCity.Text = dr["city"].ToString(); txtContactNo.Text = dr["homePhone"].ToString(); txtSenderMobileNo.Text = dr["mobile"].ToString(); ddlRelationship.SelectedItem.Text = dr["relationship"].ToString(); if (ddlRelationship.SelectedItem.Text.ToUpper() == "OTHERS") { otherRelationDiv.Attributes.Add("style", ""); otherRelationshipTextBox.Text = dr["otherRelationDesc"].ToString(); } else { otherRelationDiv.Attributes.Add("style", "display: none;"); } txtPlaceOfIssue.Text = dr["placeOfIssue"].ToString(); ddlIdType.SelectedValue = dr["idType"].ToString(); txtIdValue.Text = dr["idNumber"].ToString(); ddlPurposeOfRemitance.SelectedValue = dr["purposeOfRemit"].ToString(); txtBankLocation.Text = dr["bankLocation"].ToString(); txtBankName.Text = dr["bankName"].ToString(); txtBenificaryAc.Text = dr["receiverAccountNo"].ToString(); txtRemarks.Text = dr["remarks"].ToString(); hideCustomerId.Value = dr["customerId"].ToString(); hideBenificialId.Value = dr["receiverId"].ToString(); hideMembershipId.Value = dr["membershipId"].ToString(); ddlNativeCountry.SelectedValue = dr["NativeCountry"].ToString(); LoadPaymentModeDDL(dr["paymentMode"].ToString()); LoadPayoutPartnerDDL(dr["payOutPartner"].ToString()); } } private void PopulateDDL() { _sl.SetDDL(ref ddlIdType, "EXEC proc_online_dropDownList @flag='idType',@user='" + GetStatic.GetUser() + "'", "valueId", "detailTitle", "", "Select.."); _sl.SetDDL(ref ddlCountry, "EXEC proc_online_dropDownList @flag='allCountrylistWithCode',@user='" + GetStatic.GetUser() + "'", "countryId", "countryName", "", "Select.."); _sl.SetDDL(ref ddlNativeCountry, "EXEC proc_online_dropDownList @flag='allCountrylist',@user='" + GetStatic.GetUser() + "'", "countryId", "countryName", "", "Select.."); _sl.SetDDL(ref ddlRelationship, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=2100", "valueId", "detailTitle", "", "Select.."); _sl.SetDDL(ref ddlPurposeOfRemitance, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=3800", "valueId", "detailTitle", "8060", "Select.."); _sl.SetDDL(ref ddlBenificiaryType, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=4700", "valueId", "detailTitle", ddlBenificiaryType.SelectedValue, ""); } protected void register_Click(object sender, EventArgs e) { string receiverId = GetStatic.ReadQueryString("receiverId", ""); if (GetReceiverAddType().ToLower() != "s") { if (receiverId == "") { if (!_sl.HasRight(GetFunctionIdByUserType(AddBenificiaryFunctionIdAgent, AddBenificiaryFunctionId))) { GetStatic.AlertMessage(this, "You are not authorized to Add Receiver!"); return; } } else { if (!_sl.HasRight(GetFunctionIdByUserType(EditBenificiaryFunctionIdAgent, EditBenificiaryFunctionId))) { GetStatic.AlertMessage(this, "You are not authorized to Edit Receiver!"); return; } } } BenificiarData benificiar = new BenificiarData() { Country = ddlCountry.SelectedItem.Text, NativeCountry = ddlNativeCountry.SelectedValue, BenificiaryType = ddlBenificiaryType.SelectedValue, Email = txtEmail.Text, ReceiverFName = txtReceiverFName.Text, ReceiverMName = txtReceiverMName.Text, ReceiverLName = txtReceiverLName.Text, ReceiverAddress = txtReceiverAddress.Text, ReceiverCity = txtReceiverCity.Text, ContactNo = txtContactNo.Text, SenderMobileNo = txtSenderMobileNo.Text, Relationship = ddlRelationship.SelectedItem.Text, PlaceOfIssue = txtPlaceOfIssue.Text, TypeId = ddlIdType.SelectedValue, TypeValue = txtIdValue.Text, PurposeOfRemitance = ddlPurposeOfRemitance.SelectedItem.Text, PaymentMode = ddlPaymentMode.SelectedValue, PayoutPatner = ddlPayoutPatner.SelectedValue, BankLocation = txtBankLocation.Text, BankName = txtBankName.Text, BenificaryAc = txtBenificaryAc.Text, Remarks = txtRemarks.Text, OtherRelationDescription = otherRelationshipTextBox.Text, membershipId = hideMembershipId.Value, ReceiverId = hideBenificialId.Value, customerId = (hideCustomerId.Value != "" ? hideCustomerId.Value : null), Flag = (hideBenificialId.Value != "" ? "u" : "i") }; var dbResult = _cd.UpdateBenificiarInformation(benificiar, GetStatic.GetUser()); if (dbResult.ErrorCode == "0") { if (GetReceiverAddType().ToLower() == "s") { GetStatic.CallBackJs1(Page, "Call Back", "CallBack('" + dbResult.Id + "');"); } else { GetStatic.SetMessage(dbResult); Response.Redirect("List.aspx?customerId=" + benificiar.customerId); return; } } else { GetStatic.AlertMessage(this, dbResult.Msg); return; } } public string GetReceiverAddType() { return GetStatic.ReadQueryString("AddType", ""); } private void LoadPaymentModeDDL(string paymentId) { _sl.SetDDL(ref ddlPaymentMode, "EXEC proc_online_sendPageLoadData @flag='payoutMethods',@country='" + ddlCountry.SelectedItem.Text + "'", "Key", "Value", paymentId, ""); } private void LoadPaymentModeFromAjax() { var pCountry = Request.Form["pCountry"]; var dt = _cd.LoadDataPaymentModeDdl(GetStatic.ReadWebConfig("domesticCountryId", ""), pCountry, "", null, "recModeByCountry", GetStatic.GetUser()); Response.ContentType = "text/plain"; var json = DataTableToJson(dt); Response.Write(json); Response.End(); } public static string DataTableToJson(DataTable table) { if (table == null) return ""; var list = new List>(); foreach (DataRow row in table.Rows) { var dict = new Dictionary(); foreach (DataColumn col in table.Columns) { dict[col.ColumnName] = string.IsNullOrEmpty(row[col].ToString()) ? "" : row[col]; } list.Add(dict); } var serializer = new JavaScriptSerializer(); string json = serializer.Serialize(list); return json; } protected void PopulatePaymentModeAndPayoutPartner() { var countryId = Request.Form["countryId"]; if (!string.IsNullOrWhiteSpace(ddlCountry.SelectedItem.Text)) { LoadPaymentModeDDL(""); LoadPayoutPartnerDDL(ddlPayoutPatner.SelectedValue); } } protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(ddlCountry.SelectedItem.Text)) { LoadPaymentModeDDL(""); LoadPayoutPartnerDDL(ddlPayoutPatner.SelectedValue); } } public string GetFunctionIdByUserType(string functionIdAgent, string functionIdAdmin) { return (GetStatic.GetUserType() == "HO") ? functionIdAdmin : functionIdAgent; } protected void ddlPaymentMode_SelectedIndexChanged(object sender, EventArgs e) { if (ddlCountry.SelectedValue != "") { LoadPayoutPartnerDDL(ddlPayoutPatner.SelectedValue); } } private void LoadPayoutPartnerDDL(string partnerId) { _sl.SetDDL(ref ddlPayoutPatner, "EXEC proc_sendPageLoadData @flag='recAgentByRecModeAjaxagentAndCountry', @countryId = '" + GetStatic.ReadWebConfig("domesticCountryId", "") + "',@pCountryId='" + ddlCountry.SelectedValue + "',@param = '" + ddlPaymentMode.SelectedItem.Text + "',@agentId='" + GetStatic.GetAgentId() + "',@user = '" + GetStatic.GetUser() + "'", "bankId", "AGENTNAME", partnerId, ""); if (ddlPaymentMode.SelectedValue == "2") receiverAccountNo.Attributes.Remove("hidden"); } } public class DropDownModel { public string Key { get; set; } public string Value { get; set; } public string AGENTID { get; set; } public string AGENTNAME { get; set; } } }