示例#1
0
        public void Handle(StatusCodeChecked msg, IEventsDispatcher eventsDispatcher)
        {
            Debug.WriteLine($"SeleniumService: handling StatusCodeChecked({msg.ResourceId})");

            var publishActions = new List <Action>(); //будем копить отправку событий

            // Обрабатываем сообщение в транзакции
            _repositoryFactory.Execute(repository =>
            {
                try
                {
                    string html      = "some html generated by web driver";
                    int pageSourceId = repository.CreatePageSource(msg.ResourceId, html);

                    var pageSourceCreated = new PageSourceCreated(pageSourceId);
                    publishActions.Add(() => eventsDispatcher.Publish(pageSourceCreated));

                    repository.Commit();
                }
                catch
                {
                    repository.Rollback();
                    throw;
                }
            });

            // Работа выполнена, транзакция закоммичена, посылаем события
            publishActions.ForEach(action => action());
        }
示例#2
0
        public void Handle(ResourceCreated msg, IEventsDispatcher eventsDispatcher)
        {
            Debug.WriteLine($"PagespeedChecker: handling ResourceCreated({msg.ResourceId})");

            //TODO: сделать полезную работу

            eventsDispatcher.Publish(new StatusCodeChecked(msg.ResourceId));
        }
示例#3
0
        public void Handle(ResourceCreated msg, IEventsDispatcher eventsDispatcher)
        {
            Debug.WriteLine($"PagespeedChecker: handling ResourceCreated({msg.ResourceId})");

            _repositoryFactory.Execute(repository =>
            {
                repository.Commit();
            });
        }
示例#4
0
        public StateManager(IGenericStateRepository <GridState> gridStateRepository, IEventsDispatcher eventsDispatcher, IFileHelper fileHelper)
        {
            _saveSlot            = 0;
            InnerStatesContainer = new StatesContainer
            {
                GridStateRepository = gridStateRepository
            };
            _fileHelper = fileHelper;

            eventsDispatcher.AddListener <SaveGameStateEvent>(SaveGameStateEventHandler);
            eventsDispatcher.AddListener <LoadGameStateEvent>(LoadGameStateEventHandler);
        }
示例#5
0
 public void Inject(IEventsDispatcher eventsDispatcher, IStateManager stateManager)
 {
     _eventsDispatcher = eventsDispatcher;
     _stateManager     = stateManager;
 }
示例#6
0
 public EventsController(IEventsDispatcher eventsDispatcher)
 {
     _eventsDispatcher = eventsDispatcher;
 }
 public MainGameManager(IEventsDispatcher eventsDispatcher)
 {
     _eventsDispatcher = eventsDispatcher;
     _eventsDispatcher.AddListener <StartNewGameEvent>(StartNewGameEventHandler);
     _eventsDispatcher.AddListener <LoadSelectedGameSlotEvent>(LoadSelectedGameSlotEventHandler);
 }