示例#1
0
        public async Task <IActionResult> AbrirChamado([FromBody] ChamadoTecnico chamadoTecnico)
        {
            string message = string.Empty;

            try
            {
                if (chamadoTecnico != null)
                {
                    chamadoTecnico.DataAbertura = DateTime.Now;

                    message = JsonConvert.SerializeObject(chamadoTecnico);


                    _serviceMessage.GetConnectionFactory();

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

                        if (_serviceMessage.IsChannelOpen())
                        {
                            //Registra o chamado tecnico no banco de dados

                            if (_serviceMessage.SendMessageQueue(QueueMessage.ABERTURA_CHAMADO, _chamadoTecnicoRepository.InsereChamadoDB(message)))
                            {
                                return(Ok());
                            }
                            else
                            {
                                return(BadRequest("Ocorreu um erro ao postar a mensagem no message broker"));
                            }
                        }
                        else
                        {
                            return(BadRequest("Falha na conexão com o canal"));
                        }
                    }
                    else
                    {
                        return(BadRequest("Falha ao conectar com o message broker"));
                    }
                }
                else
                {
                    return(BadRequest("Requisição incorreta"));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, $"Ocorreu erro: {ex.Message} - Detalhes: {ex.InnerException}"));
            }
            finally
            {
                _serviceMessage.CloseConnection();
            }
        }
示例#2
0
        public string InsereChamadoDB(string message)
        {
            SQL = new StringBuilder();
            ChamadoTecnico chamado = null;

            try
            {
                if (!string.IsNullOrEmpty(message))
                {
                    var chamadoTec = JsonConvert.DeserializeObject <ChamadoTecnico>(message);

                    using (MySqlConnection conn = new MySqlConnection(_configuration.GetConnectionString("NETFLIX")))
                    {
                        chamadoTec.CodigoChamado = GeraCodigoChamado();

                        SQL.AppendLine(string.Format(@"
                                
                                INSERT INTO TAB_CHAMADO
                               (CODIGO
                               ,TITULO
                               ,DESCRICAO
                               ,CODIGO_USUARIO
                               ,DATA_ABERTURA) 
                         VALUES
                               ('{0}'
                               ,'{1}'
                               ,'{2}'
                               , {3},NOW());"


                                                     , chamadoTec.CodigoChamado,
                                                     chamadoTec.Titulo,
                                                     chamadoTec.Descricao,
                                                     chamadoTec.CodigoUsuario));


                        conn.Execute(SQL.ToString());

                        message = JsonConvert.SerializeObject(chamadoTec);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(message);
        }