Exemplo n.º 1
0
        // ReSharper disable once TooManyDependencies
        public OutputService(IBuilding building, IElevator elevator,
                             ILogger <OutputService> logger,
                             IEventStreamService eventStreamService,
                             IHubContext <ElevatorHub, IElevatorHub> hub,
                             ISettingsService settingsService)
        {
            _building           = building;
            _logger             = logger;
            _eventStreamService = eventStreamService;
            _hub             = hub;
            _elevator        = elevator;
            _settingsService = settingsService;

            _tokenSource = new CancellationTokenSource();
            _token       = _tokenSource.Token;

            _building.SubscribeToPersonActions(personAction =>
            {
                _history.Add(personAction);
                if (_history.Count > 100)
                {
                    _history.RemoveAt(0);
                }
            }, _token);
            _eventStreamService.SubscribeToGeneration(genAction =>
            {
                if (genAction == "FINISHED")
                {
                    _logger.LogInformation($"History count: {_history.Count}");
                }
            }, _token);
            _elevator.SubscribeToElevatorActions(OnElevatorAction);
        }