示例#1
0
        public async Task <string> OpenAsync(CancellationToken cancellationToken)
        {
            try
            {
                var nsm = NamespaceManager.CreateFromConnectionString(_ehConnString);
                EventHubDescription desc = new EventHubDescription(_ehPath);
                await nsm.CreateEventHubIfNotExistsAsync(desc);

                _client = new EventProcessorClient(new EventprocessorClientOptions
                {
                    Host              = Environment.MachineName + " " + Guid.NewGuid().ToString(),
                    ConnString        = _ehConnString,
                    HubPath           = _ehPath,
                    StorageConnString = _storageConnString,
                    OnMessageAction   = (message) =>
                    {
                        this._messageCallback?.Invoke(message);
                    },
                    OnError = (error) =>
                    {
                        this._loggerAction?.Invoke(error);
                    }
                });
                _client.Start();
                //return Task.FromResult($"EventHub at {this._ehPath}");
                return($"EventHub at {this._ehPath}");
            }
            catch (Exception e)
            {
                this._loggerAction?.Invoke(e);
                return($"Not listening on {this._ehPath}");
            }
        }
示例#2
0
        public async Task Test1()
        {
            var order = Generator.NewOrder();

            await using var client = new EventHubProducerClient(_config["Azure:EventHubs:ConnectionString"], "orders");
            var publisher = new Publisher(client);
            await publisher.Publish("CreateOrder", order, DateTimeOffset.UtcNow);

            var blob = new BlobServiceClient(_config["Azure:EventHubs:StorageConnectionString"]);

            await using var service = new EventProcessorClient(
                            await blob.StoreFor("service-a"),
                            EventHubConsumerClient.DefaultConsumerGroupName,
                            _config["Azure:EventHubs:ConnectionString"],
                            "orders")
                                      .AttachTo(new ServiceA(publisher), "CreateOrder");
            await service.Start();

            await using var test = new EventProcessorClient(
                            await blob.StoreFor("test"),
                            EventHubConsumerClient.DefaultConsumerGroupName,
                            _config["Azure:EventHubs:ConnectionString"],
                            "orders")
                                   .AttachTo <OrderCreated>("OrderCreated");
            await test.Start();

            await test.Assert(x => x.Should().BeEquivalentTo(order));
        }