FaultLogInputPartial.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Oreo.FaultLog.DatabaseEngine;
  10. using Oreo.FaultLog.Models;
  11. using Y.Utils.DataUtils.Collections;
  12. using System.Threading.Tasks;
  13. using Oreo.FaultLog.Views;
  14. namespace Oreo.FaultLog.Partials
  15. {
  16. public partial class FaultLogInputPartial : UserControl
  17. {
  18. public FaultLogInputPartial()
  19. {
  20. InitializeComponent();
  21. }
  22. private void FaultLogInputPartial_Load(object sender, EventArgs e)
  23. {
  24. TbIp.Text = "";
  25. TbPhone.Text = "";
  26. TbAddress.Text = "";
  27. TbProblem.Text = "";
  28. TbSolution.Text = "";
  29. TbPostscript.Text = "";
  30. DgvData.Rows.Clear();
  31. Task.Factory.StartNew(() =>
  32. {
  33. using (var db = new Muse())
  34. {
  35. var first = db.Get<FaultLogs>(x => x.Id > 0, null);
  36. List<FaultLogs> fls = db.Do<FaultLogs>().SqlQuery("SELECT * FROM faultlogs WHERE createtime LIKE @p0", DateTime.Now.ToString("yyyy-MM-dd") + "%").ToList();
  37. if (ListTool.HasElements(fls))
  38. {
  39. foreach (var f in fls)
  40. {
  41. UIAddRow(f);
  42. }
  43. }
  44. }
  45. });
  46. }
  47. private void BtSearch_Click(object sender, EventArgs e)
  48. {
  49. string ip = string.Format("%{0}%", TbIp.Text); //TbIp.Text != "" ? string.Format("%{0}%", TbIp.Text) : Guid.NewGuid().ToString();
  50. string phone = string.Format("%{0}%", TbPhone.Text); //TbPhone.Text != "" ? string.Format("%{0}%", TbPhone.Text) : Guid.NewGuid().ToString();
  51. string address = string.Format("%{0}%", TbAddress.Text); //TbAddress.Text != "" ? string.Format("%{0}%", TbAddress.Text) : Guid.NewGuid().ToString();
  52. DgvData.Rows.Clear();
  53. Task.Factory.StartNew(() =>
  54. {
  55. UIAddButton(false);
  56. using (var db = new Muse())
  57. {
  58. var fls = db.Do<FaultLogs>().SqlQuery("SELECT * FROM faultlogs WHERE ip LIKE @p0 and phone LIKE @p1 and address LIKE @p2", ip, phone, address);
  59. if (ListTool.HasElements(fls))
  60. {
  61. foreach (var f in fls)
  62. {
  63. UIAddRow(f);
  64. }
  65. }
  66. }
  67. UIAddButton(true);
  68. });
  69. }
  70. private void BtToday_Click(object sender, EventArgs e)
  71. {
  72. DgvData.Rows.Clear();
  73. Task.Factory.StartNew(() =>
  74. {
  75. using (var db = new Muse())
  76. {
  77. var fls = db.Do<FaultLogs>().SqlQuery("SELECT * FROM faultlogs WHERE createtime LIKE @p0", DateTime.Now.ToString("yyyy-MM-dd") + "%");
  78. if (ListTool.HasElements(fls))
  79. {
  80. foreach (var f in fls)
  81. {
  82. UIAddRow(f);
  83. }
  84. }
  85. }
  86. });
  87. }
  88. private void BtAdd_Click(object sender, EventArgs e)
  89. {
  90. FaultLogs fl = new FaultLogs()
  91. {
  92. Ip = TbIp.Text,
  93. Phone = TbPhone.Text,
  94. Address = TbAddress.Text,
  95. Problem = TbProblem.Text,
  96. Solution = TbSolution.Text,
  97. Postscript = TbPostscript.Text,
  98. System = CbSystem.Text,
  99. CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
  100. };
  101. TbIp.Text = "";
  102. TbPhone.Text = "";
  103. TbAddress.Text = "";
  104. TbProblem.Text = "";
  105. TbSolution.Text = "";
  106. TbPostscript.Text = "";
  107. DgvData.Rows.Clear();
  108. Task.Factory.StartNew(() =>
  109. {
  110. UIAddButton(false);
  111. using (var db = new Muse())
  112. {
  113. if (CbIsFinish.Checked)
  114. {
  115. fl.IsFinish = true;
  116. fl.FinishTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  117. }
  118. db.Add(fl);
  119. var fls = db.Do<FaultLogs>().SqlQuery("SELECT * FROM faultlogs WHERE createtime LIKE @p0", DateTime.Now.ToString("yyyy-MM-dd") + "%");
  120. if (ListTool.HasElements(fls))
  121. {
  122. foreach (var f in fls)
  123. {
  124. UIAddRow(f);
  125. }
  126. }
  127. }
  128. UIAddButton(true);
  129. });
  130. }
  131. private void DgvData_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  132. {
  133. if (e.RowIndex >= 0)
  134. {
  135. //int id = (int)DgvData.Rows[e.RowIndex].Cells["DgvDataId"].Value;
  136. //MessageBox.Show(id.ToString());
  137. try
  138. {
  139. int id = (int)DgvData.Rows[e.RowIndex].Cells["DgvDataId"].Value;
  140. if (new ModifyForm(id).ShowDialog() == DialogResult.OK)
  141. {
  142. using (var db = new Muse())
  143. {
  144. FaultLogs f = db.Get<FaultLogs>(x => x.Id == id, null);
  145. if (f != null) UIRefreshRow(e.RowIndex, f);
  146. }
  147. }
  148. }
  149. catch (Exception ex) { }
  150. }
  151. }
  152. void UIAddRow(FaultLogs f)
  153. {
  154. BeginInvoke(new Action(() =>
  155. {
  156. DgvData.Rows.Add(new object[] {
  157. DgvData.Rows.Count+1,
  158. f.CreateTime,
  159. f.FinishTime,
  160. f.Ip,
  161. f.Phone,
  162. f.Address,
  163. f.System,
  164. f.Problem,
  165. f.Solution,
  166. f.Postscript,
  167. f.Id
  168. });
  169. }));
  170. }
  171. void UIRefreshRow(int row, FaultLogs f)
  172. {
  173. BeginInvoke(new Action(() =>
  174. {
  175. DgvData.Rows[row].SetValues(new object[] {
  176. DgvData.Rows.Count+1,
  177. f.CreateTime,
  178. f.FinishTime,
  179. f.Ip,
  180. f.Phone,
  181. f.Address,
  182. f.System,
  183. f.Problem,
  184. f.Solution,
  185. f.Postscript,
  186. f.Id
  187. });
  188. }));
  189. // DgvData.Rows[row].Cells["DgvDataNo
  190. // DgvData.Rows[row].Cells["DgvDataCreateTime
  191. //DgvData.Rows[row].Cells["DgvDataFinishTime
  192. //DgvData.Rows[row].Cells["DgvDataIp
  193. //DgvData.Rows[row].Cells["DgvDataPhone
  194. //DgvData.Rows[row].Cells["DgvDataAddress
  195. //DgvData.Rows[row].Cells["DgvDataSystem
  196. //DgvData.Rows[row].Cells["DgvDataProblem
  197. //DgvData.Rows[row].Cells["DgvDataSolution
  198. //DgvData.Rows[row].Cells["DgvDataPostscript
  199. //DgvData.Rows[row].Cells["DgvDataId
  200. }
  201. void UIAddButton(bool enable)
  202. {
  203. BeginInvoke(new Action(() =>
  204. {
  205. BtAdd.Enabled = enable;
  206. }));
  207. }
  208. }
  209. }