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()); }
public void Handle(ResourceCreated msg, IEventsDispatcher eventsDispatcher) { Debug.WriteLine($"PagespeedChecker: handling ResourceCreated({msg.ResourceId})"); //TODO: сделать полезную работу eventsDispatcher.Publish(new StatusCodeChecked(msg.ResourceId)); }
public void Handle(ResourceCreated msg, IEventsDispatcher eventsDispatcher) { Debug.WriteLine($"PagespeedChecker: handling ResourceCreated({msg.ResourceId})"); _repositoryFactory.Execute(repository => { repository.Commit(); }); }
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); }
public void Inject(IEventsDispatcher eventsDispatcher, IStateManager stateManager) { _eventsDispatcher = eventsDispatcher; _stateManager = stateManager; }
public EventsController(IEventsDispatcher eventsDispatcher) { _eventsDispatcher = eventsDispatcher; }
public MainGameManager(IEventsDispatcher eventsDispatcher) { _eventsDispatcher = eventsDispatcher; _eventsDispatcher.AddListener <StartNewGameEvent>(StartNewGameEventHandler); _eventsDispatcher.AddListener <LoadSelectedGameSlotEvent>(LoadSelectedGameSlotEventHandler); }