public IActionResult Deletar([FromBody] T objeto, string parametroDeletar) { RetornoTratado <T> retorno = new RetornoTratado <T>(); retorno = genericBusiness.DeletarValidar(objeto, retorno, parametroDeletar); if (retorno.Erro == true) { return(Unauthorized(retorno)); } else { return(Ok(retorno)); } }
public IActionResult Inserir([FromBody] T objeto) { RetornoTratado <T> retorno = new RetornoTratado <T>(); retorno = genericBusiness.InserirValidar(objeto, retorno); if (retorno.Erro == true) { return(Unauthorized(retorno)); } else { return(Ok(retorno)); } }
public IActionResult ConsultarComParametro([FromBody] T objeto) { RetornoTratado <T> retorno = new RetornoTratado <T>(); retorno.Objeto = genericBusiness.ConsultarComParametro(objeto, retorno); if (retorno.Erro == true) { return(Unauthorized(retorno)); } else { return(Ok(retorno)); } }
public IActionResult ConsultarReservaAluno([FromBody] AlunoModel objeto) { RetornoTratado <RetornoEmprestimoAluno> retorno = new RetornoTratado <RetornoEmprestimoAluno>(); retorno.Objeto = alunoBusiness.ConsultarReservaAluno(objeto, retorno); if (retorno.Erro == true) { return(Unauthorized(retorno)); } else { return(Ok(retorno)); } }
public virtual List <T> ConsultarComParametroSemPerderConexao(T objeto, RetornoTratado <T> retorno, IDbConnection conexao = null, IDbTransaction transaction = null) { var resultSelect = new Dictionary <string, object>(); var objetoPreenchido = new List <T>(); try { IDbCommand comando = conexao.CreateCommand(); comando.Transaction = transaction; var propriedades = ObterNomePropriedades(objeto); StringBuilder camposPesquisa = new StringBuilder(); if (propriedades.Contains("NOMETABELA")) { propriedades.Remove("NOMETABELA"); } foreach (var item in propriedades) { camposPesquisa = item == propriedades.Last() ? camposPesquisa.Append(item) : camposPesquisa.Append(item + ", "); } comando.CommandText = $@" SELECT {camposPesquisa} FROM {ObterNomeTabela(objeto)} {ObterWhere(objeto)} "; if (conexao.State == ConnectionState.Closed) { conexao.Open(); } var linhasRetornadas = comando.ExecuteReader(); while (linhasRetornadas.Read()) { var stringJson = string.Empty; foreach (var propriedade in propriedades) { if (!propriedade.Equals("NOMETABELA")) { resultSelect.Add(propriedade, linhasRetornadas[propriedade.ToUpper().ToString()]); } } stringJson = JsonConvert.SerializeObject(resultSelect); objetoPreenchido.Add(JsonConvert.DeserializeObject <T>(stringJson)); resultSelect.Clear(); } linhasRetornadas.Close(); } catch (Exception exception) { conexao.Close(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao consultar no banco"; } return(objetoPreenchido); }
public virtual RetornoTratado <T> AlterarSemPerderConexao(T objeto, RetornoTratado <T> retorno, string parametroAlterar, bool commitTransaction = true, IDbConnection conexao = null, IDbTransaction transaction = null) { try { IDbCommand comando = conexao.CreateCommand(); comando.Transaction = transaction; var camposObjetoGenerico = ObterNomePropriedades(objeto); var camposPesquisa = new StringBuilder(); if (camposObjetoGenerico.Contains("NOMETABELA")) { camposObjetoGenerico.Remove("NOMETABELA"); } foreach (var item in camposObjetoGenerico) { if (!item.ToUpper().Equals("ID" + ObterNomeTabela(objeto).ToUpper())) { camposPesquisa = item == camposObjetoGenerico.Last() ? camposPesquisa.Append(item) : camposPesquisa.Append(item + ", "); } } var parametros = ObterValoresObjeto(objeto); var parametrosPesquisa = new StringBuilder(); foreach (var item in parametros) { if (!item.ToUpper().Equals(parametros.First().ToUpper())) { parametrosPesquisa = item == parametros.Last() ? parametrosPesquisa.Append(item) : parametrosPesquisa.Append(item + ", "); } } var variaveisMudanca = new StringBuilder(); var valorClausula = string.Empty; for (int i = 1; i < camposObjetoGenerico.Count(); i++) { if (i == camposObjetoGenerico.Count() - 1) { variaveisMudanca.Append(camposObjetoGenerico[i] + "=" + parametros[i]); } else { variaveisMudanca.Append(camposObjetoGenerico[i] + "=" + parametros[i] + ", "); } if (valorClausula == string.Empty) { valorClausula = parametroAlterar.ToUpper() == camposObjetoGenerico[i - 1].ToUpper() ? parametros[i - 1] : ""; } } comando.CommandText = $@" UPDATE {ObterNomeTabela(objeto)} SET {variaveisMudanca} WHERE {parametroAlterar} = {valorClausula} "; var linhasRetornadas = comando.ExecuteNonQuery(); if (linhasRetornadas < 0) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Erro ao alterar no banco"; } else { if (commitTransaction) { transaction.Commit(); } } } catch (Exception exception) { transaction.Rollback(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao alterar no banco"; } return(retorno); }
public virtual List <T> Consultar(T objetoGenerico, RetornoTratado <T> retorno, IDbConnection conexao = null, IDbTransaction transaction = null) { var resultSelect = new Dictionary <string, object>(); using (conexao = conexao == null ? new SqlConnection(configuration.GetValue <string>("SqlConnection")) : conexao) { var objetoPreenchido = new List <T>(); try { IDbCommand comando = conexao.CreateCommand(); var camposObjetoGenerico = ObterNomePropriedades(objetoGenerico); StringBuilder camposPesquisa = new StringBuilder(); if (camposObjetoGenerico.Contains("NOMETABELA")) { camposObjetoGenerico.Remove("NOMETABELA"); } foreach (var item in camposObjetoGenerico) { camposPesquisa = item == camposObjetoGenerico.Last() ? camposPesquisa.Append(item) : camposPesquisa.Append(item + ", "); } comando.CommandText = $@" SELECT {camposPesquisa} FROM {ObterNomeTabela(objetoGenerico)} "; if (conexao.State == ConnectionState.Closed) { conexao.Open(); } var linhasRetornadas = comando.ExecuteReader(); while (linhasRetornadas.Read()) { var stringJson = string.Empty; foreach (var objeto in camposObjetoGenerico) { resultSelect.Add(objeto, linhasRetornadas[objeto.ToUpper().ToString()]); } stringJson = JsonConvert.SerializeObject(resultSelect); objetoPreenchido.Add(JsonConvert.DeserializeObject <T>(stringJson)); resultSelect.Clear(); } linhasRetornadas.Close(); conexao.Close(); } catch (Exception exception) { conexao.Close(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao consultar no banco"; } finally { if (conexao.State == ConnectionState.Open) { conexao.Close(); } } return(objetoPreenchido); } }
public virtual RetornoTratado <T> Inserir(T objeto, RetornoTratado <T> retorno, bool commitTransaction = true, IDbConnection conexao = null, IDbTransaction transaction = null) { using (conexao = conexao == null ? new SqlConnection(configuration.GetValue <string>("SqlConnection")) : conexao) { if (conexao.State == ConnectionState.Closed) { conexao.Open(); } using (transaction = transaction == null ? conexao.BeginTransaction() : transaction) { try { IDbCommand comando = conexao.CreateCommand(); comando.Transaction = transaction; var camposObjetoGenerico = ObterNomePropriedades(objeto); var camposPesquisa = new StringBuilder(); if (camposObjetoGenerico.Contains("NOMETABELA")) { camposObjetoGenerico.Remove("NOMETABELA"); } foreach (var item in camposObjetoGenerico) { if (!item.ToUpper().Equals("ID" + ObterNomeTabela(objeto).ToUpper())) { camposPesquisa = item == camposObjetoGenerico.Last() ? camposPesquisa.Append(item) : camposPesquisa.Append(item + ", "); } } var parametros = ObterValoresObjeto(objeto); var parametrosPesquisa = new StringBuilder(); parametros.Remove("'" + ObterNomeTabela(objeto) + "'"); foreach (var item in parametros) { if (!item.ToUpper().Equals(parametros.First().ToUpper())) { parametrosPesquisa = item == parametros.Last() ? parametrosPesquisa.Append(item) : parametrosPesquisa.Append(item + ", "); } } comando.CommandText = $@" INSERT INTO {ObterNomeTabela(objeto)} ({camposPesquisa}) VALUES ({parametrosPesquisa})"; var linhasRetornadas = comando.ExecuteNonQuery(); if (linhasRetornadas < 0) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Erro ao inserir no banco"; } else { if (commitTransaction) { transaction.Commit(); } } conexao.Close(); } catch (Exception exception) { transaction.Rollback(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao inserir no banco"; } finally { if (conexao.State == ConnectionState.Open) { conexao.Close(); } } } } return(retorno); }
public virtual RetornoTratado <T> Deletar(T objeto, RetornoTratado <T> retorno, string parametroDeletar, bool commitTransaction = true, IDbConnection conexao = null, IDbTransaction transaction = null) { using (conexao = conexao == null ? new SqlConnection(configuration.GetValue <string>("SqlConnection")) : conexao) { if (conexao.State == ConnectionState.Closed) { conexao.Open(); } using (transaction = transaction == null ? conexao.BeginTransaction() : transaction) { try { IDbCommand comando = conexao.CreateCommand(); comando.Transaction = transaction; var valorClausula = string.Empty; var camposeValores = ObterCampoValoresObjeto(objeto); foreach (var item in camposeValores) { if (parametroDeletar.ToUpper().Equals(item.Key.ToUpper())) { if (item.Value is int) { valorClausula = item.Value.ToString(); } else if (item.Value is string) { valorClausula = "'" + item.Value.ToString() + "'"; } } } comando.CommandText = $@" DELETE FROM {ObterNomeTabela(objeto)} WHERE {parametroDeletar} = {valorClausula}"; var linhasRetornadas = comando.ExecuteNonQuery(); if (linhasRetornadas < 0) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Erro ao deletar aluno no banco"; } else { if (commitTransaction) { transaction.Commit(); } } } catch (Exception exception) { transaction.Rollback(); conexao.Close(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao deletar Aluno no banco"; } finally { if (conexao.State == ConnectionState.Open) { conexao.Close(); } } } } return(retorno); }
public List <RetornoEmprestimoAluno> ConsultarEmprestimosAluno(AlunoModel objeto, RetornoTratado <RetornoEmprestimoAluno> retorno) { var retornoEmprestimoAlunosLista = new List <RetornoEmprestimoAluno>(); var retornoEmprestimoAlunos = new RetornoEmprestimoAluno(); using (var conexao = new SqlConnection(configuration.GetValue <string>("SqlConnection"))) { try { IDbCommand comando = conexao.CreateCommand(); var camposObjetoGenerico = ObterNomePropriedades(objeto); StringBuilder camposPesquisa = new StringBuilder(); if (camposObjetoGenerico.Contains("NOMETABELA")) { camposObjetoGenerico.Remove("NOMETABELA"); } foreach (var item in camposObjetoGenerico) { camposPesquisa = item == camposObjetoGenerico.Last() ? camposPesquisa.Append(item) : camposPesquisa.Append(item + ", "); } comando.CommandText = $@"SELECT LIVRO.NOME AS NOME_LIVRO, ALUNO.NOME AS NOME_ALUNO, DATADEVOLUCAO, DATAFIM FROM ALUNO AS ALUNO INNER JOIN EMPRESTIMO AS EMPRESTIMO ON ALUNO.IDALUNO = EMPRESTIMO.IDALUNO INNER JOIN EMPRESTIMOLIVRO AS EMPRESTIMOLIVRO ON EMPRESTIMOLIVRO.IDEMPRESTIMO = EMPRESTIMO.IDEMPRESTIMO INNER JOIN LIVRO AS LIVRO ON LIVRO.IDLIVRO = EMPRESTIMOLIVRO.IDLIVRO "; if (conexao.State == ConnectionState.Closed) { conexao.Open(); } var linhasRetornadas = comando.ExecuteReader(); while (linhasRetornadas.Read()) { retornoEmprestimoAlunos.NomeAluno = linhasRetornadas["NOME_ALUNO"].ToString(); retornoEmprestimoAlunos.NomeLivro = linhasRetornadas["NOME_LIVRO"].ToString(); retornoEmprestimoAlunos.DataDevolucao = linhasRetornadas["DATADEVOLUCAO"].ToString(); retornoEmprestimoAlunos.DataFim = linhasRetornadas["DATAFIM"].ToString(); retornoEmprestimoAlunosLista.Add(retornoEmprestimoAlunos); } linhasRetornadas.Close(); conexao.Close(); } catch (Exception exception) { conexao.Close(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao consultar no banco"; } finally { if (conexao.State == ConnectionState.Open) { conexao.Close(); } } return(retornoEmprestimoAlunosLista); } }
public override RetornoTratado <EmprestimoModel> Inserir(EmprestimoModel objeto, RetornoTratado <EmprestimoModel> retorno, bool commitTransaction = false, IDbConnection conexao = null, IDbTransaction transaction = null) { using (conexao = new SqlConnection(config.GetValue <string>("SqlConnection"))) { conexao.Open(); using (transaction = conexao.BeginTransaction()) { try { var comando = conexao.CreateCommand(); comando.Transaction = transaction; var alunoBusca = alunoRepository.ConsultarComParametroSemPerderConexao(objeto.Aluno, new RetornoTratado <AlunoModel>(), conexao, transaction); if (alunoBusca == null || alunoBusca.Count == 0) { retorno.Erro = true; retorno.MensagemErro = "Aluno não encontrado na base"; return(retorno); } if (alunoBusca.Count > 1) { retorno.Erro = true; retorno.MensagemErro = "Mais de um aluno encontrado, informar outro parametro de busca"; return(retorno); } comando.CommandText = $@" INSERT INTO {ObterNomeTabela(objeto)} (DATAINICIO, DATAFIM, DATADEVOLUCAO, IDALUNO) VALUES ('{objeto.DataInicio.ToString("dd/MM/yyy")}', '{objeto.DataFim.ToString("dd/MM/yyy")}', '{objeto.DataDevolucao.ToString("dd/MM/yyy")}', {alunoBusca[0].IdAluno}); "; var linhasRetornadas = comando.ExecuteNonQuery(); if (linhasRetornadas < 0) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Erro ao inserir no banco"; return(retorno); } comando.CommandText = "SELECT SCOPE_IDENTITY() AS IDEMPRESTIMO"; var emprestimoInserido = comando.ExecuteReader(); var idEmprestimo = 0; while (emprestimoInserido.Read()) { idEmprestimo = (int)emprestimoInserido.GetDecimal(0); } emprestimoInserido.Close(); foreach (var livro in objeto.Livros) { var livroBusca = livroRepository.ConsultarComParametroSemPerderConexao(livro, new RetornoTratado <LivroModel>(), conexao, transaction); if (livroBusca == null) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Livro não encontrado na base"; return(retorno); } if (livroBusca.Count > 1) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Mais de um livro encontrado, informar outro parametro de busca"; return(retorno); } if (livroBusca[0].Quantidade == 0) { transaction.Rollback(); retorno.Erro = true; retorno.MensagemErro = "Livro não disponível para empréstimo, solicitar reserva"; return(retorno); } comando.CommandText = $@" INSERT INTO EMPRESTIMOLIVRO (IDLIVRO, IDEMPRESTIMO) VALUES ({livroBusca[0].IdLivro},{idEmprestimo}) "; linhasRetornadas = comando.ExecuteNonQuery(); if (linhasRetornadas < 0) { retorno.Erro = true; retorno.MensagemErro += $"Houve um problema ao fazer empréstimo do livro {livroBusca[0].Nome}. "; } else { livroBusca[0].Quantidade -= 1; livroRepository.AlterarSemPerderConexao(livroBusca[0], new RetornoTratado <LivroModel>(), "IdLivro", false, conexao, transaction); transaction.Commit(); } } conexao.Close(); } catch (Exception exception) { transaction.Rollback(); retorno.Erro = true; retorno.ErroLocal = exception.StackTrace; retorno.MensagemErro = "Erro ao inserir no banco"; } finally { if (conexao.State == ConnectionState.Open) { conexao.Close(); } } } } return(retorno); }
public override List <EmprestimoModel> ConsultarComParametro(EmprestimoModel objeto, RetornoTratado <EmprestimoModel> retorno, IDbConnection conexao = null, IDbTransaction transaction = null) { return(base.ConsultarComParametro(objeto, retorno, conexao, transaction)); }
public List <RetornoEmprestimoAluno> ConsultarReservaAluno(AlunoModel objeto, RetornoTratado <RetornoEmprestimoAluno> retorno) { var retornos = alunoRepository.ConsultarReservaAluno(objeto, retorno); return(retornos); }