using PARR.Domain.Enums; namespace PARR.BLL.Services.Interfaces { public delegate IQueryable GetWeekendsDelegate(DateOnly start, DateOnly end); public interface ICalendarService { /// /// Возвращает список дней между датами /// /// /// /// List GetDatesForPeriod(DateOnly startPeriod, DateOnly endPeriod); /// /// Возвращает список дней между датами /// /// /// /// List GetDatesForPeriod(DateTimeOffset startPeriod, DateTimeOffset endPeriod); /// /// Получить дату со смещенной часовой зоной /// /// /// /// DateTimeOffset GetDateWithTimeZoneOffset(DateTimeOffset date, int timeZoneOffsetHours); DateOnly GetEndPeriodDate(DateOnly startPeriod, DistributionPeriodTypeEnum periodType, string distributionPeriod); /// /// Получить только рабочие дни за период /// /// /// /// /// /// /// List GetWorkDatesForPeriod(DateOnly startPeriod, TimeOnly refTime, DistributionPeriodTypeEnum periodType, string distributionPeriod, GetWeekendsDelegate getWeekends); } }