public void PopulateQueue() { if (!_isLocked) { _isLocked = true; _departmentsService = Bootstrapper.GetKernel().Resolve <IDepartmentsService>(); _scheduledTasksService = Bootstrapper.GetKernel().Resolve <IScheduledTasksService>(); _usersService = Bootstrapper.GetKernel().Resolve <IUsersService>(); Task t1 = new Task(() => { try { var allItems = _scheduledTasksService.GetUpcomingScheduledTaks(); // Filter only the past items and ones that are 5 minutes 30 seconds in the future var items = from st in allItems let department = _departmentsService.GetDepartmentByUserId(st.UserId) let email = _usersService.GetMembershipByUserId(st.UserId).Email let runTime = st.WhenShouldJobBeRun(TimeConverterHelper.TimeConverter(DateTime.UtcNow, department)) where st.TaskType == (int)TaskTypes.ReportDelivery && runTime.HasValue && runTime.Value >= TimeConverterHelper.TimeConverter(DateTime.UtcNow, department) && runTime.Value <= TimeConverterHelper.TimeConverter(DateTime.UtcNow, department).AddMinutes(5).AddSeconds(30) select new { ScheduledTask = st, Department = department, Email = email }; foreach (var i in items) { var qi = new ReportDeliveryQueueItem(); qi.ScheduledTask = i.ScheduledTask; qi.Department = i.Department; qi.Email = i.Email; _queue.Enqueue(qi); } } catch (Exception ex) { Logging.LogException(ex); } finally { _isLocked = false; _cleared = false; _departmentsService = null; _scheduledTasksService = null; _usersService = null; } }); t1.Start(); } }
public StatusScheduleLogic() { _userStateService = Bootstrapper.GetKernel().Resolve <IUserStateService>(); _scheduledTasksService = Bootstrapper.GetKernel().Resolve <IScheduledTasksService>(); _departmentsService = Bootstrapper.GetKernel().Resolve <IDepartmentsService>(); _actionLogsService = Bootstrapper.GetKernel().Resolve <IActionLogsService>(); }
public MaintenanceLogic() { _departmentMembersRepository = Bootstrapper.GetKernel().Resolve <IDepartmentMembersRepository>(); _userProfileService = Bootstrapper.GetKernel().Resolve <IUserProfileService>(); _usersService = Bootstrapper.GetKernel().Resolve <IUsersService>(); _departmentsService = Bootstrapper.GetKernel().Resolve <IDepartmentsService>(); _scheduledTasksService = Bootstrapper.GetKernel().Resolve <IScheduledTasksService>(); _callsRepository = Bootstrapper.GetKernel().Resolve <ICallsRepository>(); }
public void PopulateQueue() { Logging.LogTrace("StaffingJob: Entering PopulateQueue"); if (!_isLocked) { _isLocked = true; _departmentsService = Bootstrapper.GetKernel().Resolve <IDepartmentsService>(); _scheduledTasksService = Bootstrapper.GetKernel().Resolve <IScheduledTasksService>(); var t1 = new Task(() => { try { var allItems = _scheduledTasksService.GetUpcomingScheduledTaks(); Logging.LogTrace(string.Format("StaffingJob: Analyzing {0} schedule tasks", allItems.Count)); // Filter only the past items and ones that are 5 minutes 30 seconds in the future var items = from st in allItems let department = _departmentsService.GetDepartmentByUserId(st.UserId) let runTime = st.WhenShouldJobBeRun(TimeConverterHelper.TimeConverter(DateTime.UtcNow, department)) where (st.TaskType == (int)TaskTypes.DepartmentStaffingReset || st.TaskType == (int)TaskTypes.UserStaffingLevel) && runTime.HasValue && runTime.Value >= TimeConverterHelper.TimeConverter(DateTime.UtcNow, department) && runTime.Value <= TimeConverterHelper.TimeConverter(DateTime.UtcNow, department).AddMinutes(5).AddSeconds(30) select new { ScheduledTask = st, Department = department }; foreach (var i in items) { var qi = new StaffingScheduleQueueItem(); qi.ScheduledTask = i.ScheduledTask; qi.Department = i.Department; _queue.Enqueue(qi); } } catch (Exception ex) { Logging.LogException(ex); } finally { _isLocked = false; _cleared = false; _departmentsService = null; _scheduledTasksService = null; } }, TaskCreationOptions.LongRunning); t1.Start(); } }
public StaffingSchedulesController( IUsersService usersService, IDepartmentsService departmentsService, IUserStateService userStateService, IUserProfileService userProfileService, IAuthorizationService authorizationService, IScheduledTasksService scheduledTasksService) { _usersService = usersService; _departmentsService = departmentsService; _userStateService = userStateService; _userProfileService = userProfileService; _authorizationService = authorizationService; _scheduledTasksService = scheduledTasksService; }
public with_the_scheduled_tasks_service() { _scheduledTasksService = Resolve <IScheduledTasksService>(); }
public ReportDeliveryLogic() { _scheduledTasksService = Bootstrapper.GetKernel().Resolve <IScheduledTasksService>(); _emailService = Bootstrapper.GetKernel().Resolve <IEmailService>(); _pdfProvider = Bootstrapper.GetKernel().Resolve <IPdfProvider>(); }