Ejemplo n.º 1
0
 public void SetSubscribe()
 {
     EventAggregatorRepository
     .GetInstance()
     .eventAggregator
     .GetEvent <GetInputMessages>()
     .Subscribe(ReceiveMessage, ThreadOption.UIThread, true);
 }
Ejemplo n.º 2
0
 public void SetPublish(string messageData)
 {
     EventAggregatorRepository
     .GetInstance()
     .eventAggregator
     .GetEvent <GetInputMessages>()
     .Publish(messageData);
 }
Ejemplo n.º 3
0
        public async Task <IEventHandler> LoadAsync(IEventSubscription subscription, IEventHandlerDto config)
        {
            switch (config.HandlerType)
            {
            case EventHandlerType.Rule:
                CheckDependency(EventRuleRepository);
                var ruleConfig = await EventRuleRepository.GetAsync(config.Id).ConfigureAwait(false);

                return(new EventRule(subscription, config.Id, ruleConfig));

            case EventHandlerType.Aggregate:
                CheckDependency(EventAggregatorRepository);
                var aggregatorConfig = await EventAggregatorRepository.GetAsync(config.Id).ConfigureAwait(false);

                return(new EventAggregator(subscription, config.Id, aggregatorConfig));

            case EventHandlerType.ContractQuery:
                CheckDependency(ContractQueryFactory);
                CheckDependency(EthApi);
                var queryConfig = await ContractQueryFactory.GetAsync(subscription.SubscriberId, config.Id).ConfigureAwait(false);

                return(new ContractQueryEventHandler(subscription, config.Id, EthApi, queryConfig));

            case EventHandlerType.Queue:
                CheckDependency(SubscriberQueueFactory);
                CheckDependency(SubscriberQueueRepository);
                var queueConfig = await SubscriberQueueRepository.GetAsync(subscription.SubscriberId, config.SubscriberQueueId).ConfigureAwait(false);

                var queue = await SubscriberQueueFactory.GetSubscriberQueueAsync(queueConfig).ConfigureAwait(false);

                return(new QueueHandler(subscription, config.Id, queue));

            case EventHandlerType.GetTransaction:
                CheckDependency(GetTransactionProxy);
                return(new GetTransactionEventHandler(subscription, config.Id, GetTransactionProxy));

            case EventHandlerType.Index:
                CheckDependency(SubscriberSearchIndexFactory);
                CheckDependency(SubscriberSearchIndexRepository);
                var indexConfig = await SubscriberSearchIndexRepository.GetAsync(subscription.SubscriberId, config.SubscriberSearchIndexId).ConfigureAwait(false);

                var searchIndex = await SubscriberSearchIndexFactory.GetSubscriberSearchIndexAsync(indexConfig).ConfigureAwait(false);

                return(new SearchIndexHandler(subscription, config.Id, searchIndex));

            case EventHandlerType.Store:
                CheckDependency(SubscriberRepositoryFactory);
                var storageConfig = await SubscriberStorageRepository.GetAsync(subscription.SubscriberId, config.SubscriberRepositoryId).ConfigureAwait(false);

                var logRepository = await SubscriberRepositoryFactory.GetLogRepositoryHandlerAsync(storageConfig).ConfigureAwait(false);

                return(new StorageHandler(subscription, config.Id, logRepository));

            default:
                throw new ArgumentException("unsupported handler type");
            }
        }