using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; namespace CSharpLibrary.SqlTypes { public class Emprestimo : Component { public int idEmprestimo, idFunc, idItem, idCliente; public DateTime dtEmprestimo; public DateTime dtDevolucao; public string statusEmprestimo; public Emprestimo(int? idE, int idF, int idC, int idI, DateTime dtE, DateTime dtD, string stE) { if(idE != null) idEmprestimo = (int)idE; idFunc = idF; idItem = idI; idCliente = idC; dtEmprestimo = dtE; dtDevolucao = dtD; statusEmprestimo = stE; } public List> ReturnList() { List> tmp = new List>(); using(con) { con.Open(); select = new SqlCommand("SELECT " + "e.idEmprestimo, f.nomeFunc, c.nomeCliente, i.nomeItem, e.dataEmprestimo, e.dataDevolucao, e.statusEmprestimo " + "FROM tbEmprestimo e " + "INNER JOIN tbCliente c ON e.idCliente = c.idCliente " + "INNER JOIN tbFuncionario f ON e.idFunc = f.idFunc " + "INNER JOIN tbItem i on e.idItem = i.idItem", con); con.Close(); using (SqlDataReader r = select.ExecuteReader()) { while (r.Read()) { tmp.Add( new Tuple ( r.GetInt32(0), r.GetString(1), r.GetString(2), r.GetDateTime(3), r.GetDateTime(4), r.GetString(5) ) ); } } } return tmp; } public override void Add() { using(con) { con.Open(); insert = new SqlCommand("INSERT INTO tbEmprestimo(idFunc, idCliente, idItem, dataEmprestimo, dataDevolucao, statusEmprestimo) " + "VALUES (@idFunc, @idCliente, @idItem, @dtEmprestimo, @dtDevolucao, @statusEmprestimo)", con); insert.Parameters.Add("@idFunc", SqlDbType.Int).Value = idFunc; insert.Parameters.Add("@idCliente", SqlDbType.Int).Value = idCliente; insert.Parameters.Add("@idItem", SqlDbType.Int).Value = idItem; insert.Parameters.Add("@dtEmprestimo", SqlDbType.DateTime).Value = dtEmprestimo; insert.Parameters.Add("@dtDevolucao", SqlDbType.DateTime).Value = dtDevolucao; insert.Parameters.Add("@statusEmprestimo", SqlDbType.NVarChar, 10).Value = statusEmprestimo; insert.Prepare(); insert.ExecuteNonQuery(); con.Close(); } } public override void Edit(int id, List vlr) { List tmp = ReturnTypes.ReturnEmprestimoVals(vlr[0], vlr[1], vlr[2]); idEmprestimo = id; idFunc = tmp[0]; idCliente = tmp[1]; idItem = tmp[2]; dtEmprestimo = DateTime.Parse(vlr[3]); dtDevolucao = DateTime.Parse(vlr[4]); statusEmprestimo = vlr[5]; using (con) { con.Open(); update = new SqlCommand( "UPDATE tbEmprestimo " + "SET idFunc = @idFunc, " + "idCliente = @idCliente, " + "idItem = @idItem, " + "dataEmprestimo = @dtEmprestimo, " + "dataDevolucao = @dtDevolucao, " + "statusEmprestimo = @statusEmprestimo " + "WHERE idEmprestimo = @idEmprestimo", con ); update.Parameters.Add("@idFunc", SqlDbType.Int).Value = idFunc; update.Parameters.Add("@idCliente", SqlDbType.Int).Value = idCliente; update.Parameters.Add("@idItem", SqlDbType.Int).Value = idItem; update.Parameters.Add("@dtEmprestimo", SqlDbType.DateTime).Value = dtEmprestimo; update.Parameters.Add("@dtDevolucao", SqlDbType.DateTime).Value = dtDevolucao; update.Parameters.Add("@statusEmprestimo", SqlDbType.NVarChar, 10).Value = statusEmprestimo; update.Parameters.Add("@idEmprestimo", SqlDbType.Int).Value = idEmprestimo; update.Prepare(); update.ExecuteNonQuery(); con.Close(); } } public override bool Remove(int id) { try { con.Open(); delete = new SqlCommand( "UPDATE tbEmprestimo " + "SET statusEmprestimo = 'ENTREGUE' " + "WHERE idEmprestimo = @idEmprestimo", con ); delete.Parameters.Add("@idEmprestimo", SqlDbType.Int).Value = id; delete.Prepare(); delete.ExecuteNonQuery(); con.Close(); } catch(SqlException) { throw new Exception(); } return true; } } public class Genero : Component { int idGenero; string nomeGenero; public Genero(int? idG, string nome) { if (idG != null) idGenero = (int)idG; nomeGenero = nome; } public override void Add() { using(con) { con.Open(); insert = new SqlCommand("INSERT INTO tbGenero(nomeGenero) VALUES (@nomeGenero)", con); insert.Parameters.Add("@nomeGenero", SqlDbType.NVarChar, 30).Value = nomeGenero; insert.Prepare(); insert.ExecuteNonQuery(); con.Close(); } } public override void Edit(int id, List vlr) { idGenero = id; nomeGenero = vlr[0]; using(con) { con.Open(); update = new SqlCommand("UPDATE tbGenero SET nomeGenero = @nomeGenero WHERE idGenero = @idGenero",con); update.Parameters.Add("@idGenero", SqlDbType.Int).Value = idGenero; update.Parameters.Add("@nomeGenero", SqlDbType.NVarChar, 30).Value = nomeGenero; update.Prepare(); update.ExecuteNonQuery(); con.Close(); } } public override bool Remove(int id) { List tmp = new List{"DELETADO"}; try { Edit(id, tmp); } catch(SqlException) { throw new Exception(); } return true; } } public class Item : Component { public int idItem, idAutor, generoItem, editoraItem, tipoItem; public string nomeItem, isbnItem, statusItem; public Item(int? idT, string nI, int idA, int gI, int edI, int tpI, string isbn, string stI) { if (idT != null) idItem = (int)idT; nomeItem = nI; idAutor = idA; generoItem = gI; editoraItem = edI; tipoItem = tpI; isbnItem = isbn; statusItem = stI; } public override void Add() { using (con) { con.Open(); insert = new SqlCommand("INSERT INTO tbItem(nomeItem, idAutor, generoItem, editoraItem, tipoItem, isbnItem, statusItem) " + "VALUES (@nomeItem, @idAutor, @generoItem, @editoraItem, @tipoItem, @isbnItem, @statusItem)", con); insert.Parameters.Add("@nomeItem", SqlDbType.NVarChar, 50).Value = nomeItem; insert.Parameters.Add("@isbnItem", SqlDbType.NVarChar, 13).Value = isbnItem; insert.Parameters.Add("@statusItem", SqlDbType.NVarChar, 10).Value = statusItem; insert.Parameters.Add("@idAutor", SqlDbType.Int).Value = idAutor; insert.Parameters.Add("@generoItem", SqlDbType.Int).Value = generoItem; insert.Parameters.Add("@editoraItem", SqlDbType.Int).Value = editoraItem; insert.Parameters.Add("@tipoItem", SqlDbType.Int).Value = tipoItem; insert.Prepare(); insert.ExecuteNonQuery(); con.Close(); } } public override void Edit(int id, List vlr) { List ids = ReturnTypes.ReturnItemVals(vlr[1], vlr[2], vlr[3], vlr[4]); idItem = id; idAutor = ids[0]; generoItem = ids[1]; editoraItem = ids[2]; tipoItem = ids[3]; nomeItem = vlr[0]; // Return para pegar PK!! // Vlr[0], [5], [6] -> nomeItem, isbnItem, statusItem; // Vlr[1], [2], [3], [4] -> idAutor,generoItem,editoraItem,tipoItem; isbnItem = vlr[5]; statusItem = vlr[6]; using (con) { con.Open(); update = new SqlCommand( "UPDATE tbItem " + "SET nomeItem = @nomeItem, " + "idAutor = @idAutor, " + "generoItem = @generoItem, " + "editoraItem = @editoraItem, " + "tipoItem = @tipoItem, " + "isbnItem = @isbnItem, " + "statusItem = @statusItem " + "WHERE idItem = @idItem", con ); update.Parameters.Add("@nomeItem", SqlDbType.NVarChar,50).Value = nomeItem; update.Parameters.Add("@idAutor", SqlDbType.Int).Value = idAutor; update.Parameters.Add("@generoItem", SqlDbType.Int).Value = generoItem; update.Parameters.Add("@editoraItem", SqlDbType.Int).Value = editoraItem; update.Parameters.Add("@tipoItem", SqlDbType.Int).Value = tipoItem; update.Parameters.Add("@isbnItem", SqlDbType.NVarChar, 13).Value = isbnItem; update.Parameters.Add("@statusItem", SqlDbType.NVarChar,10).Value = statusItem; update.Parameters.Add("@idItem", SqlDbType.Int).Value = idItem; update.Prepare(); update.ExecuteNonQuery(); con.Close(); } } public override bool Remove(int id) { try { con.Open(); delete = new SqlCommand( "UPDATE tbItem " + "SET statusItem = 'DESATIVADO' " + "WHERE idItem = @idItem", con ); delete.Parameters.Add("@idItem", SqlDbType.Int).Value = id; delete.Prepare(); delete.ExecuteNonQuery(); con.Close(); } catch (SqlException) { throw new Exception(); } return true; } } public class Tipo : Component { int idTipo; string nomeTipo; public Tipo(int? id, string nome) { if (id != null) idTipo = (int)id; nomeTipo = nome; } public override void Add() { using (con) { con.Open(); insert = new SqlCommand("INSERT INTO tbTipo(nomeTipo) VALUES (@nomeTipo)", con); insert.Parameters.Add("@nomeTipo", SqlDbType.NVarChar, 30).Value = nomeTipo; insert.Prepare(); insert.ExecuteNonQuery(); con.Close(); } } public override void Edit(int id, List vlr) { idTipo = id; nomeTipo = vlr[0]; using (con) { con.Open(); update = new SqlCommand("UPDATE tbTipo SET nomeTipo = @nomeTipo WHERE idTipo = @idTipo", con); update.Parameters.Add("@idTipo", SqlDbType.Int).Value = idTipo; update.Parameters.Add("@nomeTipo", SqlDbType.NVarChar, 30).Value = nomeTipo; update.Prepare(); update.ExecuteNonQuery(); con.Close(); } } public override bool Remove(int id) { List tmp = new List { "DELETADO" }; try { Edit(id, tmp); } catch (SqlException) { throw new Exception(); } return true; } } public class Editora : Component { int idEditora; string nomeEditora; public Editora(int? id, string nome) { if (id != null) idEditora = (int)id; nomeEditora = nome; } public override void Add() { using (con) { con.Open(); insert = new SqlCommand("INSERT INTO tbEditora(nomeEditora) VALUES (@nomeEditora)", con); insert.Parameters.Add("@nomeEditora", SqlDbType.NVarChar, 30).Value = nomeEditora; insert.Prepare(); insert.ExecuteNonQuery(); con.Close(); } } public override void Edit(int id, List vlr) { idEditora = id; nomeEditora = vlr[0]; using (con) { con.Open(); update = new SqlCommand("UPDATE tbEditora SET nomeEditora = @nomeEditora WHERE idEditora = @idEditora", con); update.Parameters.Add("@idEditora", SqlDbType.Int).Value = idEditora; update.Parameters.Add("@nomeEditora", SqlDbType.NVarChar, 30).Value = nomeEditora; update.Prepare(); update.ExecuteNonQuery(); con.Close(); } } public override bool Remove(int id) { List tmp = new List { "DELETADO" }; try { Edit(id, tmp); } catch (SqlException) { throw new Exception(); } return true; } } public class Autor : Component { int idAutor; string nomeAutor; public Autor(int? id, string nome) { if (id != null) idAutor = (int)id; nomeAutor = nome; } public override void Add() { using (con) { con.Open(); insert = new SqlCommand("INSERT INTO tbAutor(nomeAutor) VALUES (@nomeAutor)", con); insert.Parameters.Add("@nomeAutor", SqlDbType.NVarChar, 30).Value = nomeAutor; insert.Prepare(); insert.ExecuteNonQuery(); con.Close(); } } public override void Edit(int id, List vlr) { idAutor = id; nomeAutor = vlr[0]; using (con) { con.Open(); update = new SqlCommand("UPDATE tbAutor SET nomeAutor = @nomeAutor WHERE idAutor = @idAutor", con); update.Parameters.Add("@idAutor", SqlDbType.Int).Value = idAutor; update.Parameters.Add("@nomeAutor", SqlDbType.NVarChar, 200).Value = nomeAutor; update.Prepare(); update.ExecuteNonQuery(); con.Close(); } } public override bool Remove(int id) { List tmp = new List { "DELETADO" }; try { Edit(id, tmp); } catch (SqlException) { throw new Exception(); } return true; } } }