示例#1
0
        public ApiRouter(
            ApiThrottler apiThrottler,
            IOptionsService optionsService,
            IBellService bellService,
            ITalkTimerService timerService,
            ITalkScheduleService talksService,
            IDateTimeService dateTimeService)
        {
            _apiThrottler    = apiThrottler;
            _optionsService  = optionsService;
            _dateTimeService = dateTimeService;

            _timersApiController = new Lazy <TimersApiController>(() =>
                                                                  new TimersApiController(timerService, talksService, _optionsService, _apiThrottler));

            _dateTimeApiController = new Lazy <DateTimeApiController>(() =>
                                                                      new DateTimeApiController(_apiThrottler));

            _bellApiController = new Lazy <BellApiController>(() =>
                                                              new BellApiController(_optionsService, bellService, _apiThrottler));

            _systemApiController = new Lazy <SystemApiController>(() =>
                                                                  new SystemApiController(_optionsService, _apiThrottler));

            _webHooksApiController = new Lazy <WebHooksApiController>(() =>
                                                                      new WebHooksApiController());
        }
示例#2
0
        public MainViewModel(
            IOptionsService optionsService,
            IMonitorsService monitorsService,
            ITalkTimerService timerService,
            IBellService bellService)
        {
            _optionsService  = optionsService;
            _monitorsService = monitorsService;
            _bellService     = bellService;
            _timerService    = timerService;

            // subscriptions...
            Messenger.Default.Register <NavigateMessage>(this, OnNavigate);
            Messenger.Default.Register <TimerMonitorChangedMessage>(this, OnTimerMonitorChanged);
            Messenger.Default.Register <AlwaysOnTopChangedMessage>(this, OnAlwaysOnTopChanged);
            Messenger.Default.Register <OvertimeMessage>(this, OnTalkOvertime);

            // should really create a "page service" rather than create views in the main view model!
            _pages.Add(OperatorPageViewModel.PageName, new OperatorPage());
            _pages.Add(SettingsPageViewModel.PageName, new SettingsPage());

            _timerWindowViewModel = new TimerOutputWindowViewModel(_optionsService);

            Messenger.Default.Send(new NavigateMessage(OperatorPageViewModel.PageName, null));

#pragma warning disable 4014
            // (fire and forget)
            LaunchTimerWindowAsync();
#pragma warning restore 4014
        }
示例#3
0
        public OperatorPageViewModel(
            ITalkTimerService timerService,
            ITalkScheduleService scheduleService,
            IAdaptiveTimerService adaptiveTimerService,
            IOptionsService optionsService)
        {
            _scheduleService                 = scheduleService;
            _optionsService                  = optionsService;
            _adaptiveTimerService            = adaptiveTimerService;
            _timerService                    = timerService;
            _timerService.TimerChangedEvent += TimerChangedHandler;

            SelectFirstTalk();

            _talkTitle = _unknownTalkTitle;

            StartCommand            = new RelayCommand(StartTimer, () => IsNotRunning);
            StopCommand             = new RelayCommand(StopTimer, () => IsRunning);
            SettingsCommand         = new RelayCommand(NavigateSettings, () => IsNotRunning);
            IncrementTimerCommand   = new RelayCommand(IncrementTimer, CanIncreaseTimerValue);
            IncrementTimer15Command = new RelayCommand(IncrementTimer15Secs, CanIncreaseTimerValue);
            IncrementTimer5Command  = new RelayCommand(IncrementTimer5Mins, CanIncreaseTimerValue);
            DecrementTimerCommand   = new RelayCommand(DecrementTimer, CanDecreaseTimerValue);
            DecrementTimer15Command = new RelayCommand(DecrementTimer15Secs, CanDecreaseTimerValue);
            DecrementTimer5Command  = new RelayCommand(DecrementTimer5Mins, CanDecreaseTimerValue);
            BellToggleCommand       = new RelayCommand(BellToggle);

            // subscriptions...
            Messenger.Default.Register <OperatingModeChangedMessage>(this, OnOperatingModeChanged);
            Messenger.Default.Register <AutoMeetingChangedMessage>(this, OnAutoMeetingChanged);
        }
示例#4
0
 public AutomateService(
     IOptionsService optionsService,
     ITalkTimerService timerService,
     ITalkScheduleService scheduleService)
 {
     _optionsService  = optionsService;
     _timerService    = timerService;
     _scheduleService = scheduleService;
 }
示例#5
0
 public TimersApiController(
     ITalkTimerService timerService,
     ITalkScheduleService talkScheduleService,
     IOptionsService optionsService,
     ApiThrottler apiThrottler)
 {
     _timerService        = timerService;
     _talkScheduleService = talkScheduleService;
     _optionsService      = optionsService;
     _apiThrottler        = apiThrottler;
 }
示例#6
0
        public HttpServer(
            IOptionsService optionsService,
            IBellService bellService,
            ITalkTimerService timerService,
            ITalkScheduleService talksService)
        {
            _optionsService = optionsService;

            _apiThrottler = new ApiThrottler(optionsService);

            _apiRouter = new ApiRouter(_apiThrottler, _optionsService, bellService, timerService, talksService);
        }
示例#7
0
        public HttpServer(
            IOptionsService optionsService,
            IBellService bellService,
            ITalkTimerService timerService,
            ITalkScheduleService talksService)
        {
            _optionsService = optionsService;

            _clock24Hour  = new DateTime(1, 1, 1, 23, 1, 1).ToShortTimeString().Contains("23");
            _apiThrottler = new ApiThrottler(optionsService);

            _apiRouter = new ApiRouter(_apiThrottler, _optionsService, bellService, timerService, talksService);
        }
        public OperatorPageViewModel(
            ITalkTimerService timerService,
            ITalkScheduleService scheduleService,
            IAdaptiveTimerService adaptiveTimerService,
            IOptionsService optionsService,
            ICommandLineService commandLineService,
            IBellService bellService)
        {
            _scheduleService                 = scheduleService;
            _optionsService                  = optionsService;
            _adaptiveTimerService            = adaptiveTimerService;
            _commandLineService              = commandLineService;
            _bellService                     = bellService;
            _timerService                    = timerService;
            _timerService.TimerChangedEvent += TimerChangedHandler;
            _countUp = _optionsService.Options.CountUp;

            SelectFirstTalk();

            _timerService.TimerStartStopFromApiEvent += HandleTimerStartStopFromApi;

            // commands...
            StartCommand            = new RelayCommand(StartTimer, () => IsNotRunning && IsValidTalk, true);
            StopCommand             = new RelayCommand(StopTimer, () => IsRunning);
            SettingsCommand         = new RelayCommand(NavigateSettings, () => IsNotRunning && !_commandLineService.NoSettings);
            HelpCommand             = new RelayCommand(LaunchHelp);
            NewVersionCommand       = new RelayCommand(DisplayNewVersionPage);
            IncrementTimerCommand   = new RelayCommand(IncrementTimer, CanIncreaseTimerValue);
            IncrementTimer15Command = new RelayCommand(IncrementTimer15Secs, CanIncreaseTimerValue);
            IncrementTimer5Command  = new RelayCommand(IncrementTimer5Mins, CanIncreaseTimerValue);
            DecrementTimerCommand   = new RelayCommand(DecrementTimer, CanDecreaseTimerValue);
            DecrementTimer15Command = new RelayCommand(DecrementTimer15Secs, CanDecreaseTimerValue);
            DecrementTimer5Command  = new RelayCommand(DecrementTimer5Mins, CanDecreaseTimerValue);
            BellToggleCommand       = new RelayCommand(BellToggle);
            CountUpToggleCommand    = new RelayCommand(CountUpToggle);
            CloseCountdownCommand   = new RelayCommand(CloseCountdownWindow);

            // subscriptions...
            Messenger.Default.Register <OperatingModeChangedMessage>(this, OnOperatingModeChanged);
            Messenger.Default.Register <AutoMeetingChangedMessage>(this, OnAutoMeetingChanged);
            Messenger.Default.Register <CountdownWindowStatusChangedMessage>(this, OnCountdownWindowStatusChanged);
            Messenger.Default.Register <ShowCircuitVisitToggleChangedMessage>(this, OnShowCircuitVisitToggleChanged);

            if (IsInDesignMode)
            {
                IsNewVersionAvailable = true;
            }

            GetVersionData();
        }
示例#9
0
        public MainViewModel(
            IOptionsService optionsService,
            ITalkTimerService timerService,
            ISnackbarService snackbarService,
            IHttpServer httpServer,
            ICommandLineService commandLineService,
            ICountdownTimerTriggerService countdownTimerTriggerService,
            IDateTimeService dateTimeService,
            ITimerOutputDisplayService timerOutputDisplayService,
            ICountdownOutputDisplayService countdownDisplayService)
        {
            _commandLineService        = commandLineService;
            _dateTimeService           = dateTimeService;
            _timerOutputDisplayService = timerOutputDisplayService;
            _countdownDisplayService   = countdownDisplayService;

            if (commandLineService.NoGpu || ForceSoftwareRendering())
            {
                // disable hardware (GPU) rendering so that it's all done by the CPU...
                RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
            }

            _snackbarService = snackbarService;
            _optionsService  = optionsService;
            _httpServer      = httpServer;
            _timerService    = timerService;
            _countdownTimerTriggerService = countdownTimerTriggerService;

            _httpServer.RequestForTimerDataEvent += OnRequestForTimerData;

            // subscriptions...
            Messenger.Default.Register <NavigateMessage>(this, OnNavigate);
            Messenger.Default.Register <TimerMonitorChangedMessage>(this, OnTimerMonitorChanged);
            Messenger.Default.Register <CountdownMonitorChangedMessage>(this, OnCountdownMonitorChanged);
            Messenger.Default.Register <AlwaysOnTopChangedMessage>(this, OnAlwaysOnTopChanged);
            Messenger.Default.Register <HttpServerChangedMessage>(this, OnHttpServerChanged);
            Messenger.Default.Register <StopCountDownMessage>(this, OnStopCountdown);

            InitHttpServer();

            // should really create a "page service" rather than create views in the main view model!
            _pages.Add(OperatorPageViewModel.PageName, new OperatorPage());

            Messenger.Default.Send(new NavigateMessage(null, OperatorPageViewModel.PageName, null));

            // (fire and forget)
            Task.Run(LaunchTimerWindowAsync);

            InitHeartbeatTimer();
        }
示例#10
0
        public TimersResponseData(
            ITalkScheduleService talkService,
            ITalkTimerService timerService,
            IOptionsService optionsService)
        {
            var talks = talkService.GetTalkScheduleItems();

            Status = timerService.GetStatus();

            TimerInfo = new List <TimerInfo>();

            var countUpByDefault = optionsService.Options.CountUp;

            foreach (var talk in talks)
            {
                TimerInfo.Add(CreateTimerInfo(talk, countUpByDefault));
            }
        }
示例#11
0
        public TimersResponseData(
            ITalkScheduleService talkService,
            ITalkTimerService timerService,
            IOptionsService optionsService,
            int talkId)
        {
            var talks = talkService.GetTalkScheduleItems();
            var talk  = talks.SingleOrDefault(x => x.Id == talkId);

            if (talk == null)
            {
                throw new WebServerException(WebServerErrorCode.TimerDoesNotExist);
            }

            Status    = timerService.GetStatus();
            TimerInfo = new List <TimerInfo> {
                CreateTimerInfo(talk, optionsService.Options.CountUp)
            };
        }