Esempio n. 1
0
        public async Task <IActionResult> AtenderChamado()
        {
            string message = string.Empty;

            try
            {
                _serviceMessage.GetConnectionFactory();

                if (_serviceMessage.CreateConnection())
                {
                    _serviceMessage.CreateModel();

                    if (_serviceMessage.IsChannelOpen())
                    {
                        message = _serviceMessage.ReceiveMessageQueue(QueueMessage.ABERTURA_CHAMADO);


                        if (!string.IsNullOrEmpty(message))
                        {
                            return(Ok(message));
                        }
                        else
                        {
                            return(Ok("Não há chamados para atendimento"));
                        }
                    }
                    else
                    {
                        return(BadRequest("Falha na conexão com o canal"));
                    }
                }
                else
                {
                    return(BadRequest("Falha ao conectar com o message broker"));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, $"Ocorreu erro: {ex.Message} - Detalhes: {ex.InnerException}"));
            }
            finally
            {
                _serviceMessage.CloseConnection();
            }
        }