TimespanMINCounter.cs 1005 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. // ReSharper disable InconsistentNaming
  3. namespace BO.ProcessServer.Business.StatisticCounters
  4. {
  5. internal class TimespanMINCounter : TimespanCounter
  6. {
  7. public TimeSpan TotalValue { get; private set; }
  8. public TimespanMINCounter(string name) : base(name)
  9. {
  10. }
  11. public override void Stop()
  12. {
  13. base.Stop();
  14. var value = GetValueInternal();
  15. if (TotalValue > value)
  16. TotalValue = value;
  17. }
  18. public override object GetValue()
  19. {
  20. return TotalValue;
  21. }
  22. private TimeSpan GetValueInternal()
  23. {
  24. if (!StartTimestamp.HasValue)
  25. return TimeSpan.Zero;
  26. if (!StopTimestamp.HasValue)
  27. return DateTime.Now - StartTimestamp.GetValueOrDefault();
  28. return StopTimestamp.GetValueOrDefault() - StartTimestamp.GetValueOrDefault();
  29. }
  30. }
  31. }