public async Task Handle(RetryPendingMessages message, IMessageHandlerContext context)
        {
            var messageIds = new List <string>();

            using (var session = store.OpenAsyncSession())
            {
                var query = session.Advanced
                            .AsyncDocumentQuery <FailedMessageViewIndex.SortAndFilterOptions, FailedMessageViewIndex>()
                            .WhereEquals("Status", (int)FailedMessageStatus.RetryIssued)
                            .AndAlso()
                            .WhereBetweenOrEqual(options => options.LastModified, message.PeriodFrom.Ticks, message.PeriodTo.Ticks)
                            .AndAlso()
                            .WhereEquals(o => o.QueueAddress, message.QueueAddress)
                            .SetResultTransformer(FailedMessageViewTransformer.Name)
                            .SelectFields <FailedMessageView>(fields);

                using (var ie = await session.Advanced.StreamAsync(query).ConfigureAwait(false))
                {
                    while (await ie.MoveNextAsync().ConfigureAwait(false))
                    {
                        await manager.RemoveFailedMessageRetryDocument(ie.Current.Document.Id)
                        .ConfigureAwait(false);

                        messageIds.Add(ie.Current.Document.Id);
                    }
                }
            }

            await context.SendLocal(new RetryMessagesById { MessageUniqueIds = messageIds.ToArray() })
            .ConfigureAwait(false);
        }
        public void Handle(RetryPendingMessages message)
        {
            var messageIds = new List <string>();

            using (var session = store.OpenSession())
            {
                var query = session.Advanced
                            .LuceneQuery <FailedMessageViewIndex.SortAndFilterOptions, FailedMessageViewIndex>()
                            .WhereEquals("Status", (int)FailedMessageStatus.RetryIssued)
                            .AndAlso()
                            .WhereBetweenOrEqual(options => options.LastModified, message.PeriodFrom.Ticks, message.PeriodTo.Ticks)
                            .AndAlso()
                            .WhereEquals(o => o.QueueAddress, message.QueueAddress)
                            .SetResultTransformer(new FailedMessageViewTransformer().TransformerName)
                            .SelectFields <FailedMessageView>(fields);

                using (var ie = session.Advanced.Stream(query))
                {
                    while (ie.MoveNext())
                    {
                        manager.RemoveFailedMessageRetryDocument(ie.Current.Document.Id);
                        messageIds.Add(ie.Current.Document.Id);
                    }
                }
            }

            bus.SendLocal(new RetryMessagesById {
                MessageUniqueIds = messageIds.ToArray()
            });
        }