예제 #1
0
        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);
            }
        }
예제 #2
0
        public IActionResult AtualizarCampanha(string id, int status)
        {
            var campanhaId = Guid.Parse(id);

            try
            {
                var dadosCampanha = _campanhaWorkflowService.Find(a => a.CampanhaId.Equals(campanhaId));
                dadosCampanha.Status = status;
                _campanhaWorkflowService.Update(dadosCampanha);
                return(new ObjectResult(true));
            }
            catch (Exception)
            {
                return(new ObjectResult(false));
            }
        }