public List <Estoque> Listar() { //Define string de conexão string strConexao = "SERVER=localhost; DataBase=videolocadora; UID=root; pwd=root"; //Cria conexão com banco de dados using (MySqlConnection conn = new MySqlConnection(strConexao)) { //Abre a conexão com o banco de dados conn.Open(); //Inicia comando para o banco de dados using (MySqlCommand cmd = new MySqlCommand()) { //Monta a consulta no banco de dados string query = "SELECT * FROM estoque"; //Passa informação de conexão e consulta para o comando cmd.Connection = conn; cmd.CommandText = query; //Cria um adapter que usará a instrução SQL para acessar a tabela de Estoque using (MySqlDataAdapter da = new MySqlDataAdapter()) { da.SelectCommand = cmd; //Cria dataset para preencher a informação vinda do banco de dados DataSet ds = new DataSet(); //Preenche o dataset via adapter da.Fill(ds, "estoque"); //Recupera as informações do dataset e guarda em lista para retornar para a VIEW List <Estoque> lstRetorno = ds.Tables["estoque"].AsEnumerable().Select(x => new Estoque { Id = x.Field <int>("id"), Quantidade = x.Field <int>("quantidade"), IdFilme = x.Field <int>("filme_id") }).ToList(); foreach (Estoque estoque in lstRetorno) { // Recuperando cada filme da lista de estoque FilmeController filmeController = new FilmeController(); estoque.Filme = filmeController.Buscar(estoque.IdFilme); } //Retorna a informação recuperada return(lstRetorno); } } } }
public Estoque Buscar(int idFilme) { //Define string de conexão string strConexao = "SERVER=localhost; DataBase=videolocadora; UID=root; pwd=root"; //Cria conexão com banco de dados using (MySqlConnection conn = new MySqlConnection(strConexao)) { //Abre a conexão com o banco de dados conn.Open(); //Inicia comando para o banco de dados using (MySqlCommand cmd = new MySqlCommand()) { //Monta a consulta no banco de dados string query = $"SELECT * FROM estoque WHERE filme_id = {idFilme}"; //Passa informação de conexão e consulta para o comando cmd.Connection = conn; cmd.CommandText = query; //Executa a instrução SQL MySqlDataReader reader = cmd.ExecuteReader(); //Monta objeto de retorno Estoque retorno = new Estoque(); //Verifica se existe registro retornado do banco de dados while (reader.Read()) { //Popula objeto de retorno com informações vindas do banco de dados retorno.Id = (int)reader["id"]; retorno.Quantidade = (int)reader["quantidade"]; retorno.IdFilme = (int)reader["filme_id"]; } // Recuperando informações do filme pelo ID FilmeController filmeController = new FilmeController(); retorno.Filme = filmeController.Buscar(retorno.IdFilme); return(retorno); } } }
/// <summary> /// Gera arquivo em CSV /// </summary> public void GerarArquivoCSV() { //Informa o local e nome do arquivo a ser gerado string arquivoCSV = @"C:\Temp\Filmes.csv"; //Cria o arquivo CSV no local indicado using (StreamWriter writer = new StreamWriter(arquivoCSV, false, Encoding.UTF8)) { //Monta o cabeçalho do arquivo writer.WriteLine("ID;TITULO;LANCAMENTO;SINOPSE;GENERO_CINEMATOGRAFICO;CLASSIFICACAO_INDICATIVA"); //Instancia objeto controller de filme FilmeController controller = new FilmeController(); //Navega na lista de Filme foreach (var item in controller.Listar()) { //Escreve as informações dos filmes writer.WriteLine($"{item.Id};{item.Titulo};{item.Lancamento};{item.Sinopse};{item.GeneroCinematografico};{item.ClassificacaoIndicativa.Indicacao + " - " + item.ClassificacaoIndicativa.Descricao}"); } } }
/// <summary> /// Gera arquivo em XML /// </summary> public void GerarArquivoXML() { //Informa o local e nome do arquivo a ser gerado string arquivoXML = @"C:\Temp\Filmes.xml"; //Instancia objeto controller de filme FilmeController controller = new FilmeController(); List <Filme> lstFilmes = controller.Listar(); //Efetua a montagem das informações do arquivo XML (via LINQ) com os nós (ELEMENT) e atributos (ATTRIBUTE) var docXML = new XDocument(new XElement("Filmes", lstFilmes.Select(x => new XElement("Filme", new XAttribute("Id", x.Id), new XAttribute("Titulo", x.Titulo), new XAttribute("Lancamento", x.Lancamento), new XAttribute("Sinopse", x.Sinopse), new XAttribute("Genero_Cinematografico", x.GeneroCinematografico.Genero), new XAttribute("Classificacao_Indicativa", x.ClassificacaoIndicativa.Indicacao + " - " + x.ClassificacaoIndicativa.Descricao))))); //Salva o arquivo XML no local indicado docXML.Save(arquivoXML); }