StatusLogModel.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //************************************************************************
  2. // author: yuzhengyang
  3. // date: 2018.3.27 - 2018.6.3
  4. // desc: 工具描述
  5. // Copyright (c) yuzhengyang. All rights reserved.
  6. //************************************************************************
  7. using Azylee.Core.DataUtils.CollectionUtils;
  8. using Azylee.Core.DataUtils.DateTimeUtils;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. namespace Azylee.Core.LogUtils.StatusLogUtils
  14. {
  15. /// <summary>
  16. /// 运行状态
  17. /// </summary>
  18. public class StatusLogModel
  19. {
  20. /// <summary>
  21. /// 日期时间
  22. /// </summary>
  23. public DateTime Time { get; set; }
  24. /// <summary>
  25. /// 统计时长(单位:秒)
  26. /// </summary>
  27. public int Long { get; set; }
  28. /// <summary>
  29. /// 脱机时长(单位:秒)
  30. /// </summary>
  31. public long AFK { get; set; }
  32. /// <summary>
  33. /// Cpu使用率
  34. /// </summary>
  35. public int CpuPer { get; set; }
  36. /// <summary>
  37. /// 可用内存
  38. /// </summary>
  39. public long RamFree { get; set; }
  40. /// <summary>
  41. /// 可用系统盘容量
  42. /// </summary>
  43. public long SysDriveFree { get; set; }
  44. /// <summary>
  45. /// 应用程序Cpu使用率
  46. /// </summary>
  47. public int AppCpuPer { get; set; }
  48. /// <summary>
  49. /// 应用程序占用内存
  50. /// </summary>
  51. public long AppRamUsed { get; set; }
  52. public override string ToString()
  53. {
  54. string s = $"{DateTimeConvert.StandardString(Time)}|{Long}|{AFK}|{CpuPer}|" +
  55. $"{RamFree}|{SysDriveFree}|{AppCpuPer}|{AppRamUsed}";
  56. return s;
  57. }
  58. public StatusLogModel FromString(string s)
  59. {
  60. StatusLogModel model = new StatusLogModel();
  61. string[] elements = s.Split('|');
  62. if (ListTool.HasElements(elements))
  63. {
  64. try { if (elements.Length > 0) model.Time = DateTime.Parse(elements[0]); } catch { }
  65. try { if (elements.Length > 1) model.Long = int.Parse(elements[1]); } catch { }
  66. try { if (elements.Length > 2) model.AFK = long.Parse(elements[2]); } catch { }
  67. try { if (elements.Length > 3) model.CpuPer = int.Parse(elements[3]); } catch { }
  68. try { if (elements.Length > 5) model.RamFree = long.Parse(elements[5]); } catch { }
  69. try { if (elements.Length > 7) model.SysDriveFree = long.Parse(elements[7]); } catch { }
  70. try { if (elements.Length > 8) model.AppCpuPer = int.Parse(elements[8]); } catch { }
  71. try { if (elements.Length > 9) model.AppRamUsed = long.Parse(elements[9]); } catch { }
  72. }
  73. return model;
  74. }
  75. }
  76. }