WCS_TaskExtensions.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using DBHelper;
  2. using System;
  3. using WCS.Entity;
  4. using WCS.Entity.Protocol;
  5. using TaskStatus = WCS.Entity.TaskStatus;
  6. namespace WCS.Service.Extensions
  7. {
  8. public static class WCS_TaskExtensions
  9. {
  10. /// <summary>
  11. /// 任务发生状态变更时,为任务新增状态变更记录
  12. /// </summary>
  13. /// <param name="task">对应任务</param>
  14. /// <param name="db">db链接, 没有从新构造一个db的原因是为了保证状态记录的增加与任务状态的变更是同步的</param>
  15. public static void CreateStatusLog(this WCS_TASK task, DB db)
  16. {
  17. try
  18. {
  19. System.Reflection.MethodBase mb = new System.Diagnostics.StackTrace(true).GetFrame(1).GetMethod();
  20. var node = $"{mb.DeclaringType.FullName}.{mb.Name}";
  21. var oldStatus = task.STATUS;
  22. if (task.STATUS > TaskStatus.新建) oldStatus = db.Default.Entry(task).OriginalValues.GetValue<TaskStatus>("STATUS");
  23. WCS_StatusLog statusLog = new WCS_StatusLog()
  24. {
  25. WCS_TASKID = task.ID,
  26. OldStatus = oldStatus,
  27. NewStatus = task.STATUS,
  28. UPDATETIME = task.UPDATETIME,
  29. upStatus = task.UPLOADED,
  30. Node = node,
  31. UPDATEUSER = "WCS"
  32. };
  33. db.Default.Add(statusLog);
  34. db.Default.SaveChanges();
  35. }
  36. catch (Exception e)
  37. {
  38. Console.WriteLine(e.Message);
  39. }
  40. }
  41. public static void CreateStatusLog(this WCS_TASK task, DB db,string msg)
  42. {
  43. try
  44. {
  45. System.Reflection.MethodBase mb = new System.Diagnostics.StackTrace(true).GetFrame(1).GetMethod();
  46. var node = $"{mb.DeclaringType.FullName}.{mb.Name}";
  47. var oldStatus = task.STATUS;
  48. if (task.STATUS > TaskStatus.新建) oldStatus = db.Default.Entry(task).OriginalValues.GetValue<TaskStatus>("STATUS");
  49. WCS_StatusLog statusLog = new WCS_StatusLog()
  50. {
  51. WCS_TASKID = task.ID,
  52. OldStatus = oldStatus,
  53. NewStatus = task.STATUS,
  54. UPDATETIME = DateTime.Now,
  55. upStatus = task.UPLOADED,
  56. Node = node,
  57. UPDATEUSER = msg
  58. };
  59. db.Default.Add(statusLog);
  60. db.Default.SaveChanges();
  61. }
  62. catch (Exception e)
  63. {
  64. Console.WriteLine(e.Message);
  65. }
  66. }
  67. }
  68. }