Ejemplo n.º 1
0
        public HorasPericulosidadeQueueManager(IPeriodoPericulosidadeService service)
        {
            _connectionFactory = new ConnectionFactory()
            {
                //Uri = new Uri("amqp://*****:*****@toad.rmq.cloudamqp.com/qaawhjrg"),
                HostName = "localhost",
                UserName = "******",
                Password = "******"
            };

            var conn     = _connectionFactory.CreateConnection();
            var channel  = conn.CreateModel();
            var consumer = new EventingBasicConsumer(channel);

            consumer.Received += (sender, args) =>
            {
                var message = Encoding.UTF8.GetString(args.Body);
                Console.WriteLine($"{DateTime.Now} [Worker - Periculosidade] Nova mensagem recebida: {message}");

                var command = JsonConvert.DeserializeObject <AdicionarPeriodoPericulosidadeCommand>(message);

                service.Adicionar(command);
            };

            channel.BasicConsume(FILA_HORAS_PERICULOSIDADE, true, consumer);
        }
Ejemplo n.º 2
0
 public CalculosController(
     ICalculoService calculoService,
     IPeriodoPericulosidadeService periculosidadeService)
 {
     _calculoService        = calculoService;
     _periculosidadeService = periculosidadeService;
 }
 public CalculoWorker(
     ICalculoService service,
     IPeriodoPericulosidadeService periculosidadeService,
     CalculoQueueManager messageQueueManager)
 {
     _service = service;
     _periculosidadeService = periculosidadeService;
     _messageQueueManager   = messageQueueManager;
 }
        public CalculoQueueManager(
            ICalculoService service,
            IPeriodoPericulosidadeService periculosidadeService)
        {
            _service = service;
            _periculosidadeService = periculosidadeService;

            _connectionFactory = new ConnectionFactory()
            {
                //Uri = new Uri("amqp://*****:*****@toad.rmq.cloudamqp.com/qaawhjrg"),
                HostName = "localhost",
                UserName = "******",
                Password = "******"
            };

            var conn    = _connectionFactory.CreateConnection();
            var channel = conn.CreateModel();

            var consumer = new EventingBasicConsumer(channel);

            consumer.Received += (sender, ev) =>
            {
                var message = Encoding.UTF8.GetString(ev.Body);
                var command = JsonConvert.DeserializeObject <CalcularSalarioCommand>(message);

                Console.WriteLine($"{DateTime.Now} [Worker - Cálculos] Nova mensagem recebida: {message}");

                var horasPericulosidade = _periculosidadeService.Obter(command.NumeroCartao);
                command.HorasComPericulosidade = horasPericulosidade.Sum(h => h.HorasComPericulosidade);

                horasPericulosidade.ForEach(h =>
                {
                    h.MarcarComoCalculado();
                    _periculosidadeService.Salvar(h);
                });

                var calculo = _service.RealizarCalculo(command);
                Publicar(calculo);
            };

            channel.BasicConsume(FILA_A_PROCESSAR, true, consumer);
        }