public async Task AddHolidayCalendar(HolidayCalendar holidayCalendar) { holidayCalendar.Id = Guid.NewGuid(); await _serviceProvider.DoDapperServiceAsync(DefaultDbConfig, async (unitOfWork) => { IHolidayCalendarRepository holidayCalendarRepository = ConnectionFactory.GetConnectionProvider(DefaultDbConfig.ConnectionType).GetRepository <IHolidayCalendarRepository>(unitOfWork); await holidayCalendarRepository.InsertAsync(holidayCalendar); }); Logger.LogInformation($"AddHolidayCalendar:{JsonConvert.SerializeObject(holidayCalendar)}"); }
public async Task AddCalendar(HolidayCalendar holidayCalendar) { var holidayDates = holidayCalendar.Config.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).Select(r => DateTime.Parse(r)); Quartz.Impl.Calendar.HolidayCalendar calendar = new Quartz.Impl.Calendar.HolidayCalendar(); foreach (var holidayDate in holidayDates) { calendar.AddExcludedDate(holidayDate); } await _scheduler.AddCalendar($"{holidayCalendar.Id}_calendar", calendar, false, false); }
public async Task UpdateHolidayCalendar(HolidayCalendar holidayCalendar) { await _serviceProvider.DoDapperServiceAsync(DefaultDbConfig, async (unitOfWork) => { IHolidayCalendarRepository holidayCalendarRepository = ConnectionFactory.GetConnectionProvider(DefaultDbConfig.ConnectionType).GetRepository <IHolidayCalendarRepository>(unitOfWork); IJobConfigRepository jobConfigRepository = ConnectionFactory.GetConnectionProvider(DefaultDbConfig.ConnectionType).GetRepository <IJobConfigRepository>(unitOfWork); var dbHolidayCalendar = await holidayCalendarRepository.GetAsync(holidayCalendar.Id); if (dbHolidayCalendar == null) { throw new SpriteException("未找到假期信息"); } await holidayCalendarRepository.UpdateAsync(holidayCalendar); var activeJobConfigs = await jobConfigRepository.GetActiveJobConfigs(); foreach (var activeJobConfig in activeJobConfigs) { if (activeJobConfig.HolidayCalendarId.HasValue && activeJobConfig.HolidayCalendarId.Value == holidayCalendar.Id) { await _jobManager.UnScheduleJob(activeJobConfig); } } await _jobManager.DeleteCalendar(holidayCalendar.Id); await _jobManager.AddCalendar(holidayCalendar); foreach (var activeJobConfig in activeJobConfigs) { if (activeJobConfig.HolidayCalendarId.HasValue && activeJobConfig.HolidayCalendarId.Value == holidayCalendar.Id) { await _jobManager.ScheduleJob(activeJobConfig); } } }); Logger.LogInformation($"UpdateHolidayCalendar:{JsonConvert.SerializeObject(holidayCalendar)}"); }