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); }
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); }