FaultLogInputPartial.cs 7.4 KB

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