using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Newtonsoft.Json; namespace Newdelhibarassocia.dhadmin { public partial class ManageKyc : System.Web.UI.Page { private string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["Siteid"] == null) { Response.Redirect("Default.aspx"); return; } if (!IsPostBack) { BindGrid(); } } private void BindGrid() { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); string query = "SELECT KycRequestId, Ndbano, Prefix, F_name, M_name, L_name, Mobile_1, IdProofType, Status, CreatedDate FROM KycRequests WHERE 1=1"; string filter = ddlStatusFilter.SelectedValue; if (filter != "All") { query += " AND Status = @Status"; } string search = txtSearch.Text.Trim(); if (!string.IsNullOrEmpty(search)) { query += " AND (Ndbano LIKE @Search OR F_name LIKE @Search OR L_name LIKE @Search)"; } query += " ORDER BY KycRequestId DESC"; SqlCommand cmd = new SqlCommand(query, conn); if (filter != "All") { cmd.Parameters.AddWithValue("@Status", filter); } if (!string.IsNullOrEmpty(search)) { cmd.Parameters.AddWithValue("@Search", "%" + search + "%"); } SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); gvKycRequests.DataSource = dt; gvKycRequests.DataBind(); } } protected void Filters_Changed(object sender, EventArgs e) { pnlDetails.Visible = false; BindGrid(); } protected void btnSearch_Click(object sender, EventArgs e) { pnlDetails.Visible = false; BindGrid(); } protected void gvKycRequests_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvKycRequests.PageIndex = e.NewPageIndex; BindGrid(); } protected void gvKycRequests_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "ViewDetails") { int kycRequestId = Convert.ToInt32(e.CommandArgument); LoadDetails(kycRequestId); } } private void LoadDetails(int kycRequestId) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); string query = "SELECT * FROM KycRequests WHERE KycRequestId = @KycRequestId"; SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@KycRequestId", kycRequestId); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count > 0) { DataRow row = dt.Rows[0]; litRequestId.Text = row["KycRequestId"].ToString(); lblMemberName.Text = string.Format("{0} {1} {2} {3}", row["Prefix"], row["F_name"], row["M_name"], row["L_name"]).Replace(" ", " "); lblNdbaNo.Text = row["Ndbano"].ToString(); lblBcdEnroll.Text = row["Bcdenroll"].ToString(); lblMobile.Text = row["Mobile_1"].ToString(); lblSubmittedAddress.Text = row["Resid_1"].ToString(); lblFatherName.Text = row["Father_name"] != DBNull.Value ? row["Father_name"].ToString() : ""; lblDob.Text = row["Dob"] != DBNull.Value ? row["Dob"].ToString() : ""; lblEmail.Text = row["Email_id"] != DBNull.Value ? row["Email_id"].ToString() : ""; lblAadhar.Text = row["Aadhar_id"] != DBNull.Value ? row["Aadhar_id"].ToString() : ""; lblVoterId.Text = row["Voter_id"] != DBNull.Value ? row["Voter_id"].ToString() : ""; lblChamber.Text = row["Chamber_no"] != DBNull.Value ? row["Chamber_no"].ToString() : ""; lblVehicle.Text = row["Vehicle_no"] != DBNull.Value ? row["Vehicle_no"].ToString() : ""; lblSticker.Text = row["Sticker_no"] != DBNull.Value ? row["Sticker_no"].ToString() : ""; lblIdProofType.Text = row["IdProofType"].ToString(); ddlStatusUpdate.SelectedValue = row["Status"].ToString(); txtAdminComments.Text = row["AdminComments"] != DBNull.Value ? row["AdminComments"].ToString() : ""; string filesJson = row["IdProofFiles"].ToString(); List files = new List(); if (!string.IsNullOrEmpty(filesJson)) { try { files = JsonConvert.DeserializeObject>(filesJson); } catch { if (filesJson.Contains(",")) { files.AddRange(filesJson.Split(',')); } else { files.Add(filesJson); } } } rptDocuments.DataSource = files; rptDocuments.DataBind(); pnlDetails.Visible = true; } } } protected void btnSaveStatus_Click(object sender, EventArgs e) { int kycRequestId = Convert.ToInt32(litRequestId.Text); string status = ddlStatusUpdate.SelectedValue; string comments = txtAdminComments.Text.Trim(); using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlTransaction trans = conn.BeginTransaction(); try { string updateKycQuery = @" UPDATE KycRequests SET Status = @Status, AdminComments = @Comments, UpdatedDate = GETDATE() WHERE KycRequestId = @KycRequestId"; SqlCommand cmd = new SqlCommand(updateKycQuery, conn, trans); cmd.Parameters.AddWithValue("@Status", status); cmd.Parameters.AddWithValue("@Comments", comments); cmd.Parameters.AddWithValue("@KycRequestId", kycRequestId); cmd.ExecuteNonQuery(); string fetchQuery = "SELECT Ndbano, Resid_1, Father_name, Dob, Email_id, Aadhar_id, Voter_id, Chamber_no, Vehicle_no, Sticker_no FROM KycRequests WHERE KycRequestId = @KycRequestId"; SqlCommand fetchCmd = new SqlCommand(fetchQuery, conn, trans); fetchCmd.Parameters.AddWithValue("@KycRequestId", kycRequestId); string ndbaNo = ""; string resid = ""; string fatherName = ""; string dob = ""; string email = ""; string aadhar = ""; string voterId = ""; string chamberNo = ""; string vehicleNo = ""; string stickerNo = ""; using (SqlDataReader reader = fetchCmd.ExecuteReader()) { if (reader.Read()) { ndbaNo = reader["Ndbano"].ToString(); resid = reader["Resid_1"].ToString(); fatherName = reader["Father_name"].ToString(); dob = reader["Dob"].ToString(); email = reader["Email_id"].ToString(); aadhar = reader["Aadhar_id"].ToString(); voterId = reader["Voter_id"].ToString(); chamberNo = reader["Chamber_no"].ToString(); vehicleNo = reader["Vehicle_no"].ToString(); stickerNo = reader["Sticker_no"].ToString(); } } if (!string.IsNullOrEmpty(ndbaNo)) { if (status == "Approved") { string updateMemberQuery = @" UPDATE Memberslist SET Resid_1 = @Resid_1, Father_name = @Father_name, Dob = @Dob, Email_id = @Email_id, Aadhar_id = @Aadhar_id, Voter_id = @Voter_id, Chamber_no = @Chamber_no, Vehicle_no = @Vehicle_no, Sticker_no = @Sticker_no, I_card_no = 'Approved' WHERE Ndbano = @Ndbano"; SqlCommand updateMemberCmd = new SqlCommand(updateMemberQuery, conn, trans); updateMemberCmd.Parameters.AddWithValue("@Resid_1", resid); updateMemberCmd.Parameters.AddWithValue("@Father_name", fatherName); updateMemberCmd.Parameters.AddWithValue("@Dob", dob); updateMemberCmd.Parameters.AddWithValue("@Email_id", email); updateMemberCmd.Parameters.AddWithValue("@Aadhar_id", aadhar); updateMemberCmd.Parameters.AddWithValue("@Voter_id", voterId); updateMemberCmd.Parameters.AddWithValue("@Chamber_no", chamberNo); updateMemberCmd.Parameters.AddWithValue("@Vehicle_no", vehicleNo); updateMemberCmd.Parameters.AddWithValue("@Sticker_no", stickerNo); updateMemberCmd.Parameters.AddWithValue("@Ndbano", ndbaNo); updateMemberCmd.ExecuteNonQuery(); } else if (status == "Rejected") { string updateMemberQuery = @" UPDATE Memberslist SET I_card_no = 'Rejected' WHERE Ndbano = @Ndbano"; SqlCommand updateMemberCmd = new SqlCommand(updateMemberQuery, conn, trans); updateMemberCmd.Parameters.AddWithValue("@Ndbano", ndbaNo); updateMemberCmd.ExecuteNonQuery(); } } trans.Commit(); pnlDetails.Visible = false; BindGrid(); ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('KYC Status updated successfully!');", true); } catch (Exception ex) { trans.Rollback(); ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Error: " + ex.Message.Replace("'", "\\'") + "');", true); } } } protected void btnCancel_Click(object sender, EventArgs e) { pnlDetails.Visible = false; } protected string GetStatusBadgeClass(string status) { switch (status) { case "Pending": return "bg-warning text-dark"; case "Approved": return "bg-success"; case "Rejected": return "bg-danger"; default: return "bg-secondary"; } } } }