public async Task Run([ActivityTrigger] ClearScheduleModel clearScheduleModel, ILogger log)
        {
            var pastWeeks   = clearScheduleModel.PastWeeks ?? _options.PastWeeks;
            var futureWeeks = clearScheduleModel.FutureWeeks ?? _options.FutureWeeks;

            var weeksRange = DateTime.Today
                             .Range(pastWeeks, futureWeeks, _options.StartDayOfWeek);

            foreach (var week in weeksRange)
            {
                await _scheduleCacheService.DeleteScheduleAsync(clearScheduleModel.TeamId, week);
            }
        }
Esempio n. 2
0
        public async Task Run([ActivityTrigger] ClearScheduleModel clearScheduleModel, ILogger log)
        {
            var weeksRange = clearScheduleModel.StartDate
                             .Range(clearScheduleModel.EndDate, _options.StartDayOfWeek);

            foreach (var week in weeksRange)
            {
                if (clearScheduleModel.ClearShifts)
                {
                    await _scheduleCacheService.DeleteScheduleAsync(clearScheduleModel.TeamId, week).ConfigureAwait(false);
                }

                if (_featureOptions.EnableOpenShiftSync && clearScheduleModel.ClearOpenShifts)
                {
                    await _scheduleCacheService.DeleteScheduleAsync(clearScheduleModel.TeamId + ApplicationConstants.OpenShiftsSuffix, week).ConfigureAwait(false);
                }

                if (_featureOptions.EnableTimeOffSync && clearScheduleModel.ClearTimeOff)
                {
                    await _timeOffCacheService.DeleteTimeOffAsync(clearScheduleModel.TeamId, week).ConfigureAwait(false);
                }
            }
        }