ExeResult.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace Ips.Library.Entity
  5. {
  6. public class ExeResult : ExeResult<object>
  7. {
  8. public static ExeResult<T> Create<T>(T result, string arguments, DateTime startTime = default, DateTime exitTime = default, int exitCode = default, string errMsg = "")
  9. {
  10. return new ExeResult<T>()
  11. {
  12. ExitCode = exitCode,
  13. StartTime = startTime,
  14. ExitTime = exitTime,
  15. Result = result,
  16. ExitMsg = errMsg,
  17. Arguments = arguments
  18. };
  19. }
  20. public static ExeResult<T> Create<T>(T result, string arguments, DateTimeOffset startTime, DateTimeOffset exitTime, int exitCode = default, string errMsg = "")
  21. {
  22. return new ExeResult<T>()
  23. {
  24. ExitCode = exitCode,
  25. StartTime = startTime.LocalDateTime,
  26. ExitTime = exitTime.LocalDateTime,
  27. Result = result,
  28. ExitMsg = errMsg,
  29. Arguments = arguments
  30. };
  31. }
  32. }
  33. public class ExeResult<T>
  34. {
  35. public int ExitCode { get; set; }
  36. public string ExitMsg { get; set; }
  37. public DateTime StartTime { get; set; }
  38. public DateTime ExitTime { get; set; }
  39. public TimeSpan RunTime
  40. {
  41. get
  42. {
  43. return ExitTime - StartTime;
  44. }
  45. }
  46. public int RunTimeMs
  47. {
  48. get
  49. {
  50. return (int)RunTime.TotalMilliseconds;
  51. }
  52. }
  53. public T Result { get; set; }
  54. public string Arguments { get; set; }
  55. public override string ToString()
  56. {
  57. return Result.ToString();
  58. }
  59. }
  60. }