52 lines
2.3 KiB
C#
52 lines
2.3 KiB
C#
using PARR.DAL.NextRunServices.Models;
|
|
|
|
namespace PARR.DAL.NextRunServices.Subservices
|
|
{
|
|
//todo: -> internal
|
|
public interface ITemplateDistributorV2
|
|
{
|
|
/// <summary>
|
|
/// Распределить шаблоны
|
|
/// </summary>
|
|
/// <param name="startDate"></param>
|
|
/// <param name="duration"></param>
|
|
/// <param name="referenceDate"></param>
|
|
/// <param name="offset"></param>
|
|
/// <param name="allTemplates"></param>
|
|
/// <param name="excludeWeekends"></param>
|
|
/// <returns></returns>
|
|
Task<List<TemplateNextRunResultDto>> DistributeTemplatesAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, TimeSpan? offset, List<TemplateNextRunDto> allTemplates, bool excludeWeekends);
|
|
|
|
/// <summary>
|
|
/// Метод проверяет, актуален ли текущий NextRun шаблона, если не актуален, возвращает актуальное значение
|
|
/// </summary>
|
|
/// <param name="startDate"></param>
|
|
/// <param name="duration"></param>
|
|
/// <param name="referenceDate"></param>
|
|
/// <param name="offset"></param>
|
|
/// <param name="targetTemplate"></param>
|
|
/// <param name="allTemplates"></param>
|
|
/// <param name="excludeWeekends"></param>
|
|
/// <param name="isNew"></param>
|
|
/// <returns></returns>
|
|
Task<TemplateNextRunResultDto> GetNextRunForTemplateAsync(DateOnly startDate, int duration, DateTimeOffset referenceDate, TimeSpan? offset, TemplateNextRunDto targetTemplate, List<TemplateNextRunDto> allTemplates, bool excludeWeekends, bool isNew);
|
|
|
|
/// <summary>
|
|
/// Получить список выходных дней
|
|
/// </summary>
|
|
/// <param name="startDate"></param>
|
|
/// <param name="endDate"></param>
|
|
/// <returns></returns>
|
|
Task<HashSet<DateOnly>> GetWeekendsAsync(DateOnly startDate, DateOnly endDate);
|
|
|
|
/// <summary>
|
|
/// Получить список рабочих дней
|
|
/// </summary>
|
|
/// <param name="start"></param>
|
|
/// <param name="end"></param>
|
|
/// <param name="excludeWeekends"></param>
|
|
/// <returns></returns>
|
|
Task<List<DateOnly>> GetWorkDaysAsync(DateOnly start, DateOnly end, bool excludeWeekends);
|
|
}
|
|
}
|