|
@@ -27,13 +27,15 @@ namespace CallCenter.Application.Handlers
|
|
|
private readonly ITypedCache<WorkTimeSettings> _worktimeCache;
|
|
|
private readonly IOptionsSnapshot<WorkTimeSettings> _worktimeOptions;
|
|
|
private readonly ILogger<IncomingNotificationHandler> _logger;
|
|
|
+ private readonly IDaySettingRepository _daySettingRepository;
|
|
|
+ private readonly IDaySettingCacheManager _daySettingCacheManager;
|
|
|
|
|
|
public IncomingNotificationHandler(
|
|
|
ICallRepository callRepository, ICallDetailRepository callDetailRepository,
|
|
|
ISystemSettingCacheManager systemSettingCacheManager, IIvrCacheManager ivrCacheManager,
|
|
|
INewRockClient newRockClient, IOptionsSnapshot<DeviceConfigs> options,
|
|
|
ITypedCache<WorkTimeSettings> worktimeCache, IOptionsSnapshot<WorkTimeSettings> worktimeOptions,
|
|
|
- ILogger<IncomingNotificationHandler> logger)
|
|
|
+ ILogger<IncomingNotificationHandler> logger, IDaySettingRepository daySettingRepository, IDaySettingCacheManager daySettingCacheManager)
|
|
|
{
|
|
|
_callRepository = callRepository;
|
|
|
_callDetailRepository = callDetailRepository;
|
|
@@ -44,6 +46,8 @@ namespace CallCenter.Application.Handlers
|
|
|
_worktimeCache = worktimeCache;
|
|
|
_worktimeOptions = worktimeOptions;
|
|
|
_logger = logger;
|
|
|
+ _daySettingRepository = daySettingRepository;
|
|
|
+ _daySettingCacheManager = daySettingCacheManager;
|
|
|
}
|
|
|
|
|
|
public async Task Handle(IncomingNotification notification, CancellationToken cancellationToken)
|
|
@@ -114,7 +118,8 @@ namespace CallCenter.Application.Handlers
|
|
|
|
|
|
private (string,bool) GetCorrectCategory(WorkTimeSettings settings)
|
|
|
{
|
|
|
- if (!settings.WorkDay.Contains((int)DateTime.Now.DayOfWeek))
|
|
|
+ var list = _daySettingCacheManager.GetDaySettings();
|
|
|
+ if (!_daySettingRepository.IsWorkDay(list,DateTime.Now))
|
|
|
return (settings.RestCategory,true);
|
|
|
var time = TimeOnly.FromDateTime(DateTime.Now);
|
|
|
if ((time >= TimeOnly.Parse(settings.MorningBegin) && time <= TimeOnly.Parse(settings.MorningEnd))
|