예제 #1
0
 static void Main(string[] args)
 {
     Console.WriteLine(Resources.IniciandoAplicacao);
     try
     {
         var loggerFactory           = new LoggerFactory();
         var settings                = GetConfiguration();
         var messagingBuilderFactory = new MessagingBuilderFactory();
         using (var builder = messagingBuilderFactory.GetBuilder(settings, loggerFactory))
             using (var manager = new MessagingManager(builder, loggerFactory))
             {
                 var publisher = builder.BuildPublisher();
                 manager.LoadProcessors(null);
                 manager.Start();
                 Console.WriteLine(Resources.PublicandoMensagem);
                 publisher.Publish(new ExampleMessage()
                 {
                     Text = ItsWorking
                 }, Queue);
                 Console.WriteLine(Resources.RodandoAplicacao);
                 Console.ReadLine();
                 manager.Stop();
                 Console.WriteLine(Resources.AplicacaoEncerrada);
             }
     }
     catch (Exception err)
     {
         Console.WriteLine(Resources.ErroAoExecutarAplicacao, err.Message);
     }
 }
        static void Main(string[] args)
        {
            Console.WriteLine("Iniciando aplicação");
            try
            {
                ILoggerFactory factory  = new LoggerFactory();
                var            settings = GetConfiguration();

                IBuilder builder = new AmqpBuilder(settings, factory);
                using (var manager = new MessagingManager(builder, factory))
                {
                    var publisher = builder.BuildPublisher();

                    manager.LoadProcessors(null);
                    manager.Start();
                    Console.WriteLine("[.] Publicando mensagem para [testQueue123] ...");
                    publisher.Publish(new ExampleMessage()
                    {
                        Text = "It's working"
                    }, "testQueue123");
                    Console.WriteLine("Rodando aplicação. Pressione (enter) para encerrar.");
                    Console.ReadLine();
                    manager.Stop();
                    Console.WriteLine("Aplicação encerrada com sucesso.");
                }
            }
            catch (Exception err)
            {
                Console.WriteLine($"Erro ao executar aplicação. Detalhes: ${err.Message}");
            }
        }
        public void When_Stop_And_Inactive_Should_Log_Information()
        {
            var manager = new MessagingManager(_builderMock.Object, _loggerFactoryMock.Object);

            manager.Stop();

            _loggerMock.Verify(l => l.Log(LogLevel.Information, It.IsAny <EventId>(), new FormattedLogValues(Resources.MQManagerNotStarted), It.IsAny <Exception>(), It.IsAny <Func <object, Exception, string> >()), Times.Once);
        }
        public void StopTwiceTest()
        {
            var manager = new MessagingManager(builderMock.Object, loggerFactoryMock.Object);

            manager.Active = true;
            Assert.True(manager.Active);
            manager.Active = false;
            Assert.False(manager.Active);
            manager.Stop();
            Assert.False(manager.Active);
        }
        public void When_Stop_Should_Stop_Each_Created_Consumer()
        {
            var manager = new MessagingManager(_builderMock.Object, _loggerFactoryMock.Object);

            manager.EnabledProcessors.Add(GetProcessor <TestProcessor>());
            manager.Start();

            manager.Stop();

            _consumerMock.Verify(c => c.Stop(), Times.Exactly(manager.EnabledProcessors.Count));
        }
        public void When_Stop_Should_Set_As_Inactive()
        {
            var manager = new MessagingManager(_builderMock.Object, _loggerFactoryMock.Object)
            {
                Active = true
            };

            manager.Stop();

            manager.Active.Should().Be(false);
        }
        public void When_Stop_With_Error_Should_Log_Information_About_Error()
        {
            var exception = new Exception();

            _consumerMock.Setup(c => c.Stop()).Throws(exception);
            var manager = new MessagingManager(_builderMock.Object, _loggerFactoryMock.Object);

            manager.EnabledProcessors.Add(GetProcessor <TestProcessor>());
            manager.Start();

            manager.Stop();

            _loggerMock.Verify(l => l.Log(LogLevel.Error, It.IsAny <EventId>(), new FormattedLogValues(Resources.MQManagerErrorWhileStopping), exception, It.IsAny <Func <object, Exception, string> >()), Times.Once);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Iniciando aplicação");
            try
            {
                ILoggerFactory factory = new LoggerFactory();

                IBuilder builder   = new AmqpBuilder(GetConfiguration(), factory);
                var      manager   = new MessagingManager(builder, factory);
                var      publisher = builder.BuildPublisher();

                manager.LoadProcessors(null);
                manager.Start();
                Console.WriteLine("[.] Publicando mensagem para [testQueue123] ...");
                Console.WriteLine("Rodando aplicação. Digite (quit) para encerrar ou qualquer numero apra calcular Fibonacci.");
                while (true)
                {
                    var value = Console.ReadLine();
                    if (value == "quit")
                    {
                        break;
                    }
                    if (!Int32.TryParse(value, out int fibNum))
                    {
                        Console.WriteLine($"{value} não é um inteiro válido");
                    }

                    var reply = publisher.PublishAndWait <FibMessage>(new FibMessage()
                    {
                        Number = fibNum
                    }, "test.fibonacci").Result;
                    if (String.IsNullOrEmpty(reply.ErrorMessage))
                    {
                        Console.WriteLine($"Fibonacci para {fibNum} é igual a {reply.Number}");
                    }
                    else
                    {
                        Console.WriteLine($"Erro ao calcular fibonacci: {reply.ErrorMessage}");
                    }
                }

                manager.Stop();
                Console.WriteLine("Aplicação encerrada com sucesso.");
            }
            catch (Exception err)
            {
                Console.WriteLine($"Erro ao executar aplicação. Detalhes: ${err.Message}");
            }
        }
        private static void ProccessQueueMessage(IConfiguration config)
        {
            var loggerFactory           = new LoggerFactory();
            var messagingBuilderFactory = new MessagingBuilderFactory();
            var builder = messagingBuilderFactory.GetBuilder(config, loggerFactory);

            using (var manager = new MessagingManager(builder, loggerFactory))
            {
                manager.LoadProcessors(null);
                manager.Start();
                Console.WriteLine(Resources.ClosingApplication);
                Console.ReadLine();
                manager.Stop();
            }
        }
예제 #10
0
 static void Main(string[] args)
 {
     Console.WriteLine(Resources.IniciandoAplicacao);
     try
     {
         var factory = new LoggerFactory();
         var messagingBuilderFactory = new MessagingBuilderFactory();
         var builder   = messagingBuilderFactory.GetBuilder(GetConfiguration(), factory);
         var publisher = builder.BuildPublisher();
         var manager   = new MessagingManager(builder, factory);
         manager.LoadProcessors(null);
         manager.Start();
         PubliqueMensagem(publisher);
         manager.Stop();
         Console.WriteLine(Resources.AplicacaoEncerrada);
     }
     catch (Exception err)
     {
         Console.WriteLine(Resources.ErroAoExecutarAplicacao, err.Message);
     }
 }