コード例 #1
0
        public async Task QueueMessageBatchAsync <T>(
            Guid streamGuid,
            string streamNamespace,
            IEnumerable <T> events,
            StreamSequenceToken token,
            Dictionary <string, object> requestContext)
        {
            if (token != null)
            {
                throw new ArgumentException(
                          "ServiceBus stream provider does not support non-null StreamSequenceToken.",
                          nameof(token));
            }
            var queueId = _streamQueueMapper.GetQueueForStream(streamGuid, streamNamespace);

            if (!Queues.TryGetValue(queueId, out var queue))
            {
                if (!IsConnected)
                {
                    await ConnectAsync();
                }

                var tmpQueue = new ServiceBusAdapterSender(_loggerFactory, _serializationManager, Client !, QueueOptions,
                                                           _streamQueueMapper.QueueIdToQueueName(queueId));
                await tmpQueue.InitializeAsync();

                queue = Queues.GetOrAdd(queueId, tmpQueue);
            }

            await queue.SendAsync(streamGuid, streamNamespace, events, requestContext);
        }