FaultLogInputPartial.cs 7.6 KB

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