IExpireTimeHandler.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Hotline.Share.Dtos.Settings;
  2. using Hotline.Share.Enums.Settings;
  3. using XF.Domain.Dependency;
  4. namespace Hotline.Settings.TimeLimitDomain;
  5. public interface IExpireTimeHandler
  6. {
  7. /// <summary>
  8. /// 计算工作时间分钟数
  9. /// </summary>
  10. /// <param name="beginTime"></param>
  11. /// <param name="endTime"></param>
  12. /// <param name="workTime">工作日时间段</param>
  13. /// <param name="isCenter"></param>
  14. /// <returns>秒数</returns>
  15. public Task<int> CalcWorkTimeAsync(DateTime beginTime, DateTime endTime, List<string>? workTime, bool isCenter);
  16. /// <summary>
  17. /// 计算工作时间分钟数(已改返回秒)
  18. /// </summary>
  19. /// <param name="beginTime"></param>
  20. /// <param name="endTime"></param>
  21. /// <param name="workTime">工作日时间段</param>
  22. /// <param name="isCenter"></param>
  23. /// <returns></returns>
  24. public Task<int> CalcWorkTimeExAsync(DateTime beginTime, DateTime endTime, List<string>? workTime, bool isCenter);
  25. /// <summary>
  26. /// 计算工作日
  27. /// </summary>
  28. /// <param name="beginTime"></param>
  29. /// <param name="timeType"></param>
  30. /// <param name="timeValue"></param>
  31. /// <param name="workTime">工作日时间段</param>
  32. /// <param name="Percentage">即将超期百分比</param>
  33. /// <param name="PercentageOne">超期百分比第一级</param>
  34. /// <returns></returns>
  35. public Task<TimeResult> CalcEndTimeAsync(DateTime beginTime, ETimeType timeType, List<string>? workTime, int timeValue, int Percentage, int PercentageOne);
  36. /// <summary>
  37. /// 计算时间间隔
  38. /// </summary>
  39. /// <param name="beginTime"></param>
  40. /// <param name="endTime"></param>
  41. /// <param name="isCenter"></param>
  42. /// <returns></returns>
  43. public string CalcTimeInterval(DateTime beginTime, DateTime endTime, bool isCenter);
  44. /// <summary>
  45. /// 倒推工作日
  46. /// </summary>
  47. /// <param name="date"></param>
  48. /// <returns></returns>
  49. public Task<DateTime> CalcWorkTimeReduceAsync(DateTime date, int timeValue);
  50. }