Ejemplo n.º 1
0
        public Task <PollerResult <Event> > NextAsync(QueueName name)
        {
            var connection = _connectionProvider.GetConnection();
            var result     = new PollerResult <Event>(false, Event.Empty);

            using (var channel = connection.CreateModel())
            {
                var consumer = new QueueingBasicConsumer(channel);
                channel.BasicConsume(name.SubscriptionName, true, consumer);
                BasicDeliverEventArgs eventArgs = null;
                if (consumer.Queue.Dequeue((int)_longPollingTimeout.TotalMilliseconds,
                                           out eventArgs))
                {
                    var @event = new Event()
                    {
                        Body              = Encoding.UTF8.GetString(eventArgs.Body),
                        QueueName         = name.SubscriptionName,
                        UnderlyingMessage = eventArgs,
                        ContentType       = "text/plain", // should it be JSON?
                        EventType         = name.SubscriptionName
                    };

                    result = new PollerResult <Event>(true, @event);
                }
                return(Task.FromResult(result));
            }
        }
Ejemplo n.º 2
0
        public Task<PollerResult<Event>> NextAsync(QueueName name)
        {
            var connection = _connectionProvider.GetConnection();
            var result = new PollerResult<Event>(false , Event.Empty);
            using (var channel = connection.CreateModel())
            {
                var consumer = new QueueingBasicConsumer(channel);
                channel.BasicConsume(name.SubscriptionName, true, consumer);
                BasicDeliverEventArgs eventArgs = null;
                if (consumer.Queue.Dequeue((int)_longPollingTimeout.TotalMilliseconds, 
                    out eventArgs))
                {
                    var @event = new Event()
                    {
                        Body = Encoding.UTF8.GetString(eventArgs.Body),
                        QueueName = name.SubscriptionName,
                        UnderlyingMessage = eventArgs,
                        ContentType = "text/plain", // should it be JSON?
                        EventType = name.SubscriptionName
                    };

                    result = new PollerResult<Event>(true, @event);
                }
                return Task.FromResult(result);
            }

        }