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