Beispiel #1
0
        public void Handle_Creates_Entry_Where_None_Exists_For_A_Queue()
        {
            MessageEndpointName queueName = new MessageEndpointName(Guid.NewGuid().ToString());
            long messageNumber            = 1;

            using (var uow = new UnitOfWork(ConnectionString))
            {
                var lastProcessedEntry = MessageNumberRepository.GetLastProcessedMessageNumber(
                    uow,
                    queueName);
                Assert.IsTrue(!lastProcessedEntry.HasValue);
            }

            using (var uow = new UnitOfWork(ConnectionString))
            {
                var handler = new DeDupHandler <object>(uow);
                handler._next = _ => { };
                handler.Handle(new{}, queueName, messageNumber);
                uow.Commit();
            }

            using (var uow = new UnitOfWork(ConnectionString))
            {
                Option <Tuple <long, MessageQueueProcessingDetailsRow> > lastProcessedEntry = MessageNumberRepository.GetLastProcessedMessageNumber(uow, queueName);
                Assert.IsTrue(lastProcessedEntry.HasValue);
                var lastMessageNumber = lastProcessedEntry.GetValue().Item1;
                lastMessageNumber.Should().Be(1);
            }
        }
Beispiel #2
0
        public static List <MessageEndpoint> GetAll(UnitOfWork uow)
        {
            var channelBase          = OrderChannel.GetBase();
            var messageEndpointName  = new MessageEndpointName("orderdomain/order stream #1");
            var lastMessageProcessed = MessageNumberRepository.GetLastProcessedMessageNumber(
                uow,
                messageEndpointName);

            var lmp = lastMessageProcessed.Match(x => x.Item1, () => MessageEndpoint.NoMessagesProcessed);

            return(new List <MessageEndpoint>()
            {
                new MessageEndpoint(
                    messageEndpointName,
                    new HttpChannel(
                        channelBase,
                        "eventstream/orderdomain/order/0,9"),
                    lmp,
                    PollingDelays.DefaultDelayMs * 5,
                    PollingDelays.DefaultPollingErrorDelays)
            });
        }