public void VerificarStatusCampanha() { Console.WriteLine(Environment.GetEnvironmentVariable("CAMPANHA")); var id = Guid.Parse(Environment.GetEnvironmentVariable("CAMPANHA")); var dadosCampanha = _campanhaWorkflowService.Find(a => a.CampanhaId.Equals(id)); var workflowStatus = dadosCampanha.Status; switch (workflowStatus) { case (int)WorkflowStatus.WorkflowManager: _atualizarStatus.AtualizarStatusApi(id, (int)WorkflowStatus.MessageBuilder); _dockerHelper.RunAsync(id, "nyom.messagebuilder"); Console.WriteLine("Status Atualizado, iniciando MessageBuilder"); break; case (int)WorkflowStatus.MessageBuilder: case (int)WorkflowStatus.QueueBuilder: case (int)WorkflowStatus.PushSender: case (int)WorkflowStatus.LoggingCleanup: break; case (int)WorkflowStatus.MessageBuilderCompleted: Console.WriteLine("Entrou aqui 2"); _atualizarStatus.AtualizarStatusApi(id, (int)WorkflowStatus.QueueBuilder); _dockerHelper.RunAsync(id, "nyom.queuebuilder"); Console.WriteLine("Status Atualizado, iniciando QueuBuilder"); break; case (int)WorkflowStatus.QueueBuilderCompleted: _atualizarStatus.AtualizarStatusApi(id, (int)WorkflowStatus.PushSender); _dockerHelper.RunAsync(id, "nyom.pushsender"); Console.WriteLine("Status Atualizado, iniciando PushSender"); break; case (int)WorkflowStatus.PushSenderCompleted: _atualizarStatus.AtualizarStatusApi(id, (int)WorkflowStatus.Finished); Console.WriteLine("Status Atualizado, Finalizado"); break; case (int)WorkflowStatus.LoggingCleanupCompleted: _atualizarStatus.AtualizarStatusApi(id, (int)WorkflowStatus.Finished); break; case (int)WorkflowStatus.Finished: break; case (int)WorkflowStatus.Error: break; case (int)WorkflowStatus.Blocked: break; case (int)WorkflowStatus.Cancelled: break; default: throw new ArgumentOutOfRangeException(nameof(workflowStatus), workflowStatus, null); } }
public void MontarMensagens(string campanhaId) { //var id = new Guid(campanhaId); var id = new Guid(campanhaId); var dadosCampanha = _campanhaCrmService.Get(id); if (dadosCampanha != null) { var dadosTemplate = _templateservice.Get(dadosCampanha.TemplateId); if (dadosTemplate == null) { Console.WriteLine("Nenhum template foi encontrado"); Console.ReadKey(); return; } var listaPessoas = _pessoaService.All(); if (listaPessoas == null) { Console.WriteLine("Nenhuma lista de pessoas foi encontrada"); Console.ReadKey(); return; } SalvarMensagens(listaPessoas, dadosCampanha, dadosTemplate); _atualizarStatus.AtualizarStatusApi(dadosCampanha.CampanhaId, (int)WorkflowStatus.MessageBuilderCompleted); } else { Console.WriteLine("Nenhuma campanha foi encontrada"); Console.ReadKey(); } }
public void Start() { Console.WriteLine(Environment.GetEnvironmentVariable("CAMPANHA")); var enfileirar = _enfileirarMensagens.EnfileirarMensagensPush(Guid.Parse("4063DEBE-6EA0-4C54-B36E-2C65D0D6D060")); _atualizarStatus.AtualizarStatusApi(Guid.Parse("4063DEBE-6EA0-4C54-B36E-2C65D0D6D060"), (int)WorkflowStatus.QueueBuilderCompleted); }
public void PushMessages(Guid campanha) { var enviar = _enviarMensagensPush.Envia(campanha.ToString()); if (enviar) { _atualizarStatus.AtualizarStatusApi(campanha, (int)WorkflowStatus.PushSenderCompleted); } }
public void BuscarCampanhas(object stateInfo) { Console.WriteLine("Bem vindo ao Nyom "); var dadosCampanha = _campanhaWorkflowService.FindAll(a => a.Status.Equals(Convert.ToInt16(WorkflowStatus.Ready))) .OrderBy(a => a.DataCriacao).FirstOrDefault(); if (dadosCampanha == null) { Console.WriteLine("Não há campanhas"); return; } _atualizarStatus.AtualizarStatusApi(dadosCampanha.CampanhaId, (int)WorkflowStatus.WorkflowManager); _dockerHelper.RunAsync(dadosCampanha.CampanhaId, "nyom.workflow.manager"); Console.WriteLine("Campanha encontrada, iniciando Workflow Manager"); }
public bool Envia(string campanha) { try { var factory = new ConnectionFactory { HostName = "localhost", Port = 5672, UserName = "******", Password = "******" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: campanha, durable: true, exclusive: false, autoDelete: false, arguments: null); channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false); Console.WriteLine(" [*] Waiting for messages."); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine(" [x] Received {0}", message); var dots = message.Split('.').Length - 1; Thread.Sleep(dots * 1000); Console.WriteLine(" [x] Done"); channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); }; channel.BasicConsume(queue: campanha, autoAck: false, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } _atualizarStatus.AtualizarStatusApi(Guid.Parse(campanha), (int)WorkflowStatus.PushSenderCompleted); return(true); } catch (Exception e) { Console.WriteLine(e); return(false); } }