FaultLogInputPartial.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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. IsFinish = CbIsFinish.Checked,
  95. FinishTime = CbIsFinish.Checked ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : "",
  96. };
  97. UICleanInput();
  98. Task.Factory.StartNew(() =>
  99. {
  100. UIAddButton(false);
  101. using (var db = new Muse())
  102. {
  103. db.Add(fl);
  104. var fls = db.Do<FaultLogs>().SqlQuery("SELECT * FROM faultlogs WHERE createtime LIKE @p0", DateTime.Now.ToString("yyyy-MM-dd") + "%");
  105. if (ListTool.HasElements(fls))
  106. {
  107. foreach (var f in fls)
  108. {
  109. UIAddRow(f);
  110. }
  111. }
  112. }
  113. UIAddButton(true);
  114. });
  115. }
  116. private void DgvData_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  117. {
  118. if (e.RowIndex >= 0)
  119. {
  120. //int id = (int)DgvData.Rows[e.RowIndex].Cells["DgvDataId"].Value;
  121. //MessageBox.Show(id.ToString());
  122. try
  123. {
  124. int id = (int)DgvData.Rows[e.RowIndex].Cells["DgvDataId"].Value;
  125. if (new ModifyForm(id).ShowDialog() == DialogResult.OK)
  126. {
  127. using (var db = new Muse())
  128. {
  129. FaultLogs f = db.Get<FaultLogs>(x => x.Id == id, null);
  130. if (f != null) UIRefreshRow(e.RowIndex, f);
  131. }
  132. }
  133. }
  134. catch (Exception ex) { }
  135. }
  136. }
  137. void UIAddRow(FaultLogs f)
  138. {
  139. BeginInvoke(new Action(() =>
  140. {
  141. DgvData.Rows.Add(new object[] {
  142. DgvData.Rows.Count+1,
  143. f.CreateTime,
  144. f.FinishTime,
  145. f.Ip,
  146. f.Phone,
  147. f.Address,
  148. f.System,
  149. f.Problem,
  150. f.Solution,
  151. f.Postscript,
  152. f.Id
  153. });
  154. }));
  155. }
  156. void UIRefreshRow(int row, FaultLogs f)
  157. {
  158. BeginInvoke(new Action(() =>
  159. {
  160. DgvData.Rows[row].SetValues(new object[] {
  161. DgvData.Rows.Count+1,
  162. f.CreateTime,
  163. f.FinishTime,
  164. f.Ip,
  165. f.Phone,
  166. f.Address,
  167. f.System,
  168. f.Problem,
  169. f.Solution,
  170. f.Postscript,
  171. f.Id
  172. });
  173. }));
  174. // DgvData.Rows[row].Cells["DgvDataNo
  175. // DgvData.Rows[row].Cells["DgvDataCreateTime
  176. //DgvData.Rows[row].Cells["DgvDataFinishTime
  177. //DgvData.Rows[row].Cells["DgvDataIp
  178. //DgvData.Rows[row].Cells["DgvDataPhone
  179. //DgvData.Rows[row].Cells["DgvDataAddress
  180. //DgvData.Rows[row].Cells["DgvDataSystem
  181. //DgvData.Rows[row].Cells["DgvDataProblem
  182. //DgvData.Rows[row].Cells["DgvDataSolution
  183. //DgvData.Rows[row].Cells["DgvDataPostscript
  184. //DgvData.Rows[row].Cells["DgvDataId
  185. }
  186. void UIAddButton(bool enable)
  187. {
  188. BeginInvoke(new Action(() =>
  189. {
  190. BtAdd.Enabled = enable;
  191. }));
  192. }
  193. void UICleanInput()
  194. {
  195. BeginInvoke(new Action(() =>
  196. {
  197. TbIp.Text = "";
  198. TbPhone.Text = "";
  199. TbAddress.Text = "";
  200. TbProblem.Text = "";
  201. TbSolution.Text = "";
  202. TbPostscript.Text = "";
  203. CbIsFinish.Checked = false;
  204. CbSystem.Text = "";
  205. DgvData.Rows.Clear();
  206. }));
  207. }
  208. }
  209. }