public static async Task HandleData(Visit visit, AckHandler ackHandler, NackHandler nackHandler)
        {
            if (VERBOSE)
            {
                Console.WriteLine($" [-] Vist {visit.Id} RECEIVED at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}.");
            }

            var pushingResult = await _campaignPusher.PushCampaignAsync(visit);

            if (pushingResult.Notifications.Any())
            {
                if (VERBOSE)
                {
                    foreach (var notification in pushingResult.Notifications)
                    {
                        Console.WriteLine($" [-] {notification.Message} at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}.");
                    }
                }

                if (pushingResult.IsInvalid)
                {
                    nackHandler(requeue: false);
                    return;
                }
            }

            if (VERBOSE)
            {
                Console.WriteLine($" [x] Visit {visit.Id} DONE pushing campaign at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}.");
            }

            ackHandler();
        }
Example #2
0
        public void cant_nack_without_message_id()
        {
            var frame  = new BasicFrame("NACK");
            var client = Substitute.For <IStompClient>();
            var repos  = Substitute.For <IQueueRepository>();

            var    sut    = new NackHandler(repos);
            Action actual = () => sut.Process(client, frame);

            actual.ShouldThrow <BadRequestException>();
        }
Example #3
0
        public void cant_nack_if_message_Was_not_found()
        {
            var frame  = new BasicFrame("NACK");
            var repos  = Substitute.For <IQueueRepository>();
            var client = Substitute.For <IStompClient>();

            frame.Headers["id"] = "aa";
            client.IsFramePending("aa").Returns(false);

            var    sut    = new NackHandler(repos);
            Action actual = () => sut.Process(client, frame);

            actual.ShouldThrow <BadRequestException>();
        }
Example #4
0
        public void nack()
        {
            var frame        = new BasicFrame("NACK");
            var repos        = Substitute.For <IQueueRepository>();
            var client       = Substitute.For <IStompClient>();
            var subscription = Substitute.For <Subscription>(client, "aa");
            var queue        = Substitute.For <IStompQueue>();

            subscription.Nack("aa").Returns(new IFrame[] { frame });
            subscription.QueueName = "Q";
            repos.Get("Q").Returns(queue);
            frame.Headers["id"] = "aa";
            client.IsFramePending("aa").Returns(true);
            client.GetSubscription("aa").Returns(subscription);

            var sut = new NackHandler(repos);

            sut.Process(client, frame);

            subscription.Received().Nack("aa");
            queue.Received().Enqueue(frame);
        }
Example #5
0
        public void enqueue_if_transaction_was_specified()
        {
            var frame        = new BasicFrame("NACK");
            var repos        = Substitute.For <IQueueRepository>();
            var client       = Substitute.For <IStompClient>();
            var subscription = Substitute.For <Subscription>(client, "aa");
            var queue        = Substitute.For <IStompQueue>();

            subscription.QueueName = "Q";
            repos.Get("Q").Returns(queue);
            frame.Headers["id"]          = "aa";
            frame.Headers["transaction"] = "sdfsd";
            client.IsFramePending("aa").Returns(true);
            client.GetSubscription("aa").Returns(subscription);

            var sut = new NackHandler(repos);

            sut.Process(client, frame);

            client.Received().EnqueueInTransaction("sdfsd", Arg.Any <Action>(), Arg.Any <Action>());
            subscription.DidNotReceive().Nack("aa");
            queue.DidNotReceiveWithAnyArgs().Enqueue(null);
        }
        public static async Task HandleData(Campaign campaign, AckHandler ackHandler, NackHandler nackHandler)
        {
            if (VERBOSE)
            {
                Console.WriteLine($" [-] Campaign {campaign.Id} RECEIVED at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}.");
            }

            var indexingResult = await _campaignIndexer.IndexCampaignAsync(campaign);

            if (indexingResult.Notifications.Any())
            {
                if (VERBOSE)
                {
                    foreach (var notification in indexingResult.Notifications)
                    {
                        Console.WriteLine($" [-] {notification.Message} at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}.");
                    }
                }

                if (indexingResult.IsInvalid)
                {
                    nackHandler(requeue: false);
                    return;
                }
            }

            if (VERBOSE)
            {
                Console.WriteLine($" [x] Campaign {campaign.Id} DONE indexing at {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}.");
            }

            ackHandler();
        }