DebugApiCallFailedUI.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using DbCommon.BusinessCore.BaseCore;
  2. using Newtonsoft.Json;
  3. using ProjectManagementSystem.Common.Core;
  4. using ProjectManagementSystem.Common.Extenions;
  5. using ProjectManagementSystem.Common.Logger;
  6. using ProjectManagementSystem.Common.WebApi;
  7. using ProjectManagementSystem.Device.CommandCallback;
  8. using ProjectManagementSystem.Device.Extenions;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using System.Windows.Forms;
  18. namespace ProjectManagementSystem.UI
  19. {
  20. public partial class DebugApiCallFailedUI : UserControl, IDisplayUI
  21. {
  22. private ApiCallFailedManager apiCallFailedManager = new ApiCallFailedManager();
  23. public DebugApiCallFailedUI()
  24. {
  25. InitializeComponent();
  26. }
  27. public bool Init()
  28. {
  29. dataGridUI1.dataGridView1.CellClick += DataGridView1_CellClick;
  30. return true;
  31. }
  32. private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
  33. {
  34. }
  35. public void UpdateDisplay()
  36. {
  37. if (!this.Visible) return;
  38. var dataList = apiCallFailedManager.GetList().OrderBy(d => d.CreateTime).ToList();
  39. dataGridUI1.ShowDataGrid(dataList);
  40. }
  41. private async void button1_Click(object sender, EventArgs e)
  42. {
  43. try
  44. {
  45. (sender as Control).Enabled = false;
  46. var ret = await Task.Run(() =>
  47. {
  48. return ReCallApi();
  49. });
  50. MessageBox.Show($"{ret}", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  51. }
  52. catch (Exception ex)
  53. {
  54. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  55. }
  56. (sender as Control).Enabled = true;
  57. }
  58. private string ReCallApi()
  59. {
  60. string content = null;
  61. while (true)
  62. {
  63. var data = apiCallFailedManager.GetFirstOne();
  64. if(data == null)
  65. {
  66. continue;
  67. }
  68. bool result = CustomerApi.LesApi(data.ApiName, data.Body, out content);
  69. if (result)
  70. {
  71. apiCallFailedManager.Delete(data);
  72. }
  73. else
  74. {
  75. break;
  76. }
  77. }
  78. return content;
  79. }
  80. }
  81. }