PageRenderTime 52ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/inbox.aspx.cs

https://bitbucket.org/xpertech/paycell
C# | 335 lines | 315 code | 9 blank | 11 comment | 30 complexity | 139fd27b7f95254cb66af2bfdb8f6905 MD5 | raw file
  1. using System;
  2. using System.Collections;
  3. using System.Collections.ObjectModel;
  4. using System.Configuration;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Web;
  8. using System.Web.Security;
  9. using System.Web.UI;
  10. using System.Web.UI.HtmlControls;
  11. using System.Web.UI.WebControls;
  12. using System.Web.UI.WebControls.WebParts;
  13. using System.Xml.Linq;
  14. using System.Xml;
  15. using System.IO;
  16. using System.Net;
  17. using System.Xml;
  18. public partial class inbox : System.Web.UI.Page
  19. {
  20. static DataTable dtreplies;
  21. static int userid;
  22. static int FlagDel = 0;
  23. protected void Page_Load(object sender, EventArgs e)
  24. {
  25. if (!IsPostBack)
  26. {
  27. DataTable dt = SqlHelper.ExecuteDatatable(GlobalVariable.con, CommandType.Text, "select (FromNumber+' '+' '+Description) as DTF,FromNumber,Description from tbl_FromNumbers");
  28. ddlFromNumbers.DataSource = dt;
  29. ddlFromNumbers.DataTextField = "DTF";
  30. ddlFromNumbers.DataValueField = "FromNumber";
  31. ddlFromNumbers.DataBind();
  32. ddlFromNumbers.Items.Insert(0, "--Select Number--");
  33. }
  34. }
  35. protected void GridViewReplies_PageIndexChanging(object sender, GridViewPageEventArgs e)
  36. {
  37. GridViewReplies.PageIndex = e.NewPageIndex;
  38. GridViewReplies.DataSource = dtreplies;
  39. GridViewReplies.DataBind();
  40. }
  41. protected void ChkAl_CheckedChanged(object sender, EventArgs e)
  42. {
  43. CheckBox chk = (CheckBox)GridViewReplies.HeaderRow.FindControl("ChkAll");
  44. if (chk.Checked == true)
  45. {
  46. foreach (GridViewRow row in GridViewReplies.Rows)
  47. {
  48. CheckBox chkItem = (CheckBox)row.FindControl("CheckBox1");
  49. chkItem.Checked = true;
  50. }
  51. }
  52. }
  53. protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
  54. {
  55. GridViewRow row = (GridViewRow)(sender as Control).Parent.Parent;
  56. int index = row.RowIndex;
  57. Label lblmsgid = GridViewReplies.Rows[index].FindControl("Label1") as Label;
  58. SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "delete from tbl_inbox where msgid='" + Convert.ToInt32(lblmsgid.Text) + "'");
  59. bindgrid();
  60. }
  61. protected void BtnDel_Click(object sender, EventArgs e)
  62. {
  63. for (int i = 0; i <= GridViewReplies.Rows.Count - 1; i++)
  64. {
  65. CheckBox chkboxselect = GridViewReplies.Rows[i].FindControl("chkSelect") as CheckBox;
  66. Label lblmsgid = GridViewReplies.Rows[i].FindControl("Label1") as Label;
  67. if (chkboxselect.Checked)
  68. {
  69. SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "delete from tbl_inbox where msgid='" + Convert.ToInt32(lblmsgid.Text) + "'");
  70. FlagDel = 1;
  71. }
  72. }
  73. if (FlagDel != 1)
  74. {
  75. Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('Please select any one to delete.')</script>"));
  76. }
  77. if (FlagDel == 1)
  78. {
  79. Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('Selected message deleted successfully.')</script>"));
  80. }
  81. bindgrid();
  82. }
  83. protected void GridViewReplies_Sorting(object sender, GridViewSortEventArgs e)
  84. {
  85. if (e.SortExpression == ViewState["MsgDate"].ToString())
  86. {
  87. if (ViewState["Sort_Order"].ToString() == "ASC")
  88. RebindData1(e.SortExpression, "DESC");
  89. else
  90. RebindData1(e.SortExpression, "ASC");
  91. }
  92. else
  93. RebindData1(e.SortExpression, "ASC");
  94. }
  95. private void RebindData1(string sColimnName, string sSortOrder)
  96. {
  97. DataTable dt = (DataTable)Cache["dt1"];
  98. dt.DefaultView.Sort = sColimnName + " " + sSortOrder;
  99. GridViewReplies.DataSource = dt;
  100. GridViewReplies.DataBind();
  101. ViewState["SentDateTime"] = sColimnName;
  102. ViewState["Sort_Order"] = sSortOrder;
  103. }
  104. protected void ddlFromNumbers_SelectedIndexChanged(object sender, EventArgs e)
  105. {
  106. bindgrid();
  107. }
  108. private void bindgrid()
  109. {
  110. dtreplies = SqlHelper.ExecuteDatatable(GlobalVariable.con, CommandType.Text, "select * from tbl_inbox where MsgTo='" + ddlFromNumbers.SelectedValue + "'");
  111. GridViewReplies.DataSource = dtreplies;
  112. GridViewReplies.DataBind();
  113. Cache["dt1"] = dtreplies;
  114. ViewState["MsgDate"] = "MsgDate";
  115. ViewState["Sort_Order"] = "ASC";
  116. GridViewReplies.Sort("MsgDate", SortDirection.Descending);
  117. if (GridViewReplies.Rows.Count > 0)
  118. {
  119. BtnDel.Visible = true;
  120. btnDownload.Visible = true;
  121. lblPPR.Visible = true;
  122. ddlShowRecords.Visible = true;
  123. btnOptOutSelected.Visible = true;
  124. txtSearch.Visible = true;
  125. Button2.Visible = true;
  126. }
  127. else
  128. {
  129. txtSearch.Visible = false;
  130. Button2.Visible = false;
  131. btnOptOutSelected.Visible = false;
  132. BtnDel.Visible = false;
  133. btnDownload.Visible = false;
  134. lblPPR.Visible = false;
  135. ddlShowRecords.Visible = false;
  136. //lblmsgStatus.Text = "";
  137. }
  138. }
  139. protected void btnDownload_Click(object sender, EventArgs e)
  140. {
  141. GridViewReplies.AllowPaging = false;
  142. GridViewReplies.Columns.RemoveAt(0);
  143. GridViewReplies.Columns.RemoveAt(0);
  144. GridViewReplies.Columns.RemoveAt(0);
  145. GridViewReplies.Columns.RemoveAt(3);
  146. GridViewReplies.Columns.RemoveAt(3);
  147. dtreplies = SqlHelper.ExecuteDatatable(GlobalVariable.con, CommandType.Text, "select * from tbl_inbox where MsgTo='" + ddlFromNumbers.SelectedValue + "'");
  148. GridViewReplies.DataSource = dtreplies;
  149. GridViewReplies.DataBind();
  150. DataFlow.Export("InboxData.xls", this.GridViewReplies);
  151. }
  152. protected void ddlShowRecords_SelectedIndexChanged(object sender, EventArgs e)
  153. {
  154. GridViewReplies.PageSize = Convert.ToInt32(ddlShowRecords.SelectedValue);
  155. GridViewReplies.DataSource = dtreplies;
  156. GridViewReplies.DataBind();
  157. }
  158. protected void lbtnMsgFrom_Click(object sender, EventArgs e)
  159. {
  160. Session["MsgTo"] = null;
  161. Session["MsgFrom"] = null;
  162. GridViewRow row = (GridViewRow)(sender as Control).Parent.Parent;
  163. int index = row.RowIndex;
  164. Label MsgTo = (Label)GridViewReplies.Rows[index].FindControl("Label2");
  165. LinkButton MsgFrom = (LinkButton)GridViewReplies.Rows[index].FindControl("lbtnMsgFrom");
  166. Session["MsgTo"] = MsgTo.Text;
  167. Session["MsgFrom"] = MsgFrom.Text;
  168. Button1_ModalPopupExtender.Show();
  169. }
  170. protected void btnSendReply_Click(object sender, EventArgs e)
  171. {
  172. string MsgTo = Session["MsgTo"].ToString();
  173. string MsgFrom = Session["MsgFrom"].ToString();
  174. DateTime zonetime = getClientTime(DateTime.UtcNow.ToString(), "-06:00");
  175. DateTime ScheduleDateTime = Convert.ToDateTime(txtDate.Text + " " + DropDownListHour.SelectedValue + ":" + DropDownListMinute.SelectedValue + " " + ddlAMPM.SelectedValue);
  176. if (ScheduleDateTime > zonetime)
  177. {
  178. //SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_SentMessages (MsgTo,MsgText,MsgStatus,UserId,groupid,SentDateTime,ScheduleDateTime,smsDeliveryTime,TimeZone,Frequency,TillDate) values('" + txtSingleNumber.Text.Trim() + "','" + message + "','" + GlobalVariable.MsgStatus.scheduled.ToString() + "','" + Convert.ToInt32(lbluid.Text) + "','" + ddlSubGroup.SelectedValue + "','" + DateTime.Now + "','" + ScheduleDateTime + "',null,'" + ddlTimeZone.SelectedValue + "','" + ddFrequency.SelectedValue + "','" + Convert.ToDateTime(txtTillDate.Text) + "')");
  179. SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_SentMessages (MsgFrom,MsgTo,MsgText,MsgStatus,UserId,GroupId,SentDateTime,ScheduleDateTime,smsDeliveryTime,TimeZone) values('" +
  180. MsgTo + "','" + MsgFrom + "','" + txtReplyMessage.Text + "','" + GlobalVariable.MsgStatus.scheduled.ToString() + "','" + null + "','" + null + "','" + DateTime.Now + "','" + ScheduleDateTime + "',null,'-06:00')");
  181. lblmsg.Text = "Message scheduled. Send another or click on close button above to close the panel.";
  182. }
  183. else
  184. {
  185. lblmsg.Text = "Please select future time";
  186. //Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
  187. }
  188. }
  189. public static DateTime getClientTime(string date, object O)
  190. {
  191. if (O != null)
  192. {
  193. string Temp = O.ToString().Trim();
  194. if (!Temp.Contains("+") && !Temp.Contains("-"))
  195. {
  196. Temp = Temp.Insert(0, "+");
  197. }
  198. ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
  199. DateTime startTime = DateTime.Parse(date);
  200. DateTime _now = DateTime.Parse(date);
  201. foreach (TimeZoneInfo timeZoneInfo in timeZones)
  202. {
  203. if (timeZoneInfo.ToString().Contains(Temp))
  204. {
  205. //Response.Write(timeZoneInfo.ToString());
  206. //string _timeZoneId = "Pacific Standard Time";
  207. TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById(timeZoneInfo.Id);
  208. _now = TimeZoneInfo.ConvertTime(startTime, TimeZoneInfo.Utc, tst);
  209. break;
  210. }
  211. }
  212. return _now;
  213. }
  214. else
  215. return DateTime.Parse(date);
  216. }
  217. protected void btnOptOutSelected_Click(object sender, EventArgs e)
  218. {
  219. int countopt = 0;
  220. int noop = 0;
  221. int totaln = 0;
  222. string numbers = "";
  223. for (int i = 0; i <= GridViewReplies.Rows.Count - 1; i++)
  224. {
  225. CheckBox chkboxselect = GridViewReplies.Rows[i].FindControl("chkSelect") as CheckBox;
  226. LinkButton lblMsgTo = GridViewReplies.Rows[i].FindControl("lbtnMsgFrom") as LinkButton;
  227. Label lblmsgid = GridViewReplies.Rows[i].FindControl("Label1") as Label;
  228. if (chkboxselect.Checked)
  229. {
  230. totaln++;
  231. object nmbr = SqlHelper.ExecuteScalar(GlobalVariable.con, CommandType.Text, "Select ContactId from tbl_groupcontacts where MobileNumber='" + lblMsgTo.Text + "'");
  232. if (nmbr != null)
  233. {
  234. SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "update tbl_groupcontacts set Unsubscribed='true' where MobileNumber = '" + lblMsgTo.Text + "'");
  235. countopt++;
  236. }
  237. else
  238. {
  239. noop++;
  240. object opt = SqlHelper.ExecuteScalar(GlobalVariable.con,CommandType.Text,"select GroupId from tbl_group where GroupName='Opt Outs'");
  241. if (opt != null)
  242. {
  243. int abc = Convert.ToInt32(opt.ToString());
  244. SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "insert into tbl_groupcontacts (groupid,MobileNumber,EmailId,FirstName,LastName,CurrentDT,Unsubscribed) values(" + abc + ",'" + lblMsgTo.Text + "','" + null + "','" + null + "','" + null + "','" + DateTime.Now + "','true')");
  245. }
  246. }
  247. SqlHelper.ExecuteNonQuery(GlobalVariable.con, CommandType.Text, "delete from tbl_inbox where msgid='" + Convert.ToInt32(lblmsgid.Text) + "'");
  248. }
  249. }
  250. bindgrid();
  251. string SelectGroup = "";
  252. SelectGroup = "" + totaln + " contacts opted out from database.";
  253. Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
  254. }
  255. protected void Button2_Click(object sender, EventArgs e)
  256. {
  257. if (txtSearch.Text == string.Empty)
  258. {
  259. string SelectGroup = "Enter valid information to search.";
  260. Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
  261. }
  262. else
  263. {
  264. SearchData();
  265. }
  266. }
  267. private void SearchData()
  268. {
  269. Int64 a = 0;
  270. string ColName;
  271. string ColName2 = "";
  272. DataSet ds1 = new DataSet();
  273. try
  274. {
  275. a = Convert.ToInt64(txtSearch.Text);
  276. ColName = "MsgFrom";
  277. ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_inbox where " + ColName + " like '" + txtSearch.Text + "%' and MsgTo='" + ddlFromNumbers.SelectedValue + "'");
  278. }
  279. catch
  280. {
  281. //ColName = "FirstName";
  282. //ColName2 = "LastName";
  283. //ds1 = SqlHelper.ExecuteDataset(GlobalVariable.con, CommandType.Text, "select * from tbl_inbox where MsgText like'" + txtSearch.Text + "%' and MsgTo='" + ddlFromNumbers.SelectedValue + "'");
  284. //string SelectGroup = "Sorry no info available in inbox.";
  285. //Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
  286. }
  287. DataTable dt1 = ds1.Tables[0];
  288. if (dt1.Rows.Count > 0)
  289. {
  290. GridViewReplies.DataSource = dt1;
  291. GridViewReplies.DataBind();
  292. Cache["dt1"] = dt1;
  293. ViewState["MsgDate"] = "MsgDate";
  294. ViewState["Sort_Order"] = "ASC";
  295. GridViewReplies.Sort("MsgDate", SortDirection.Descending);
  296. if (GridViewReplies.Rows.Count > 0)
  297. {
  298. BtnDel.Visible = true;
  299. btnDownload.Visible = true;
  300. lblPPR.Visible = true;
  301. ddlShowRecords.Visible = true;
  302. btnOptOutSelected.Visible = true;
  303. }
  304. else
  305. {
  306. btnOptOutSelected.Visible = false;
  307. BtnDel.Visible = false;
  308. btnDownload.Visible = false;
  309. lblPPR.Visible = false;
  310. ddlShowRecords.Visible = false;
  311. //lblmsgStatus.Text = "";
  312. }
  313. }
  314. else
  315. {
  316. string SelectGroup = "Sorry no info available in inbox.";
  317. Page.Controls.Add(new LiteralControl("<script language='javascript'> window.alert('" + SelectGroup + "')</script>"));
  318. }
  319. }
  320. private void MessageBox(string strMsg)
  321. {
  322. Label lbl = new Label();
  323. lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert(" + "'" + strMsg + "'" + ")</script>";
  324. Page.Controls.Add(lbl);
  325. }
  326. }