Esempio n. 1
0
        public List <Locacao> 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 Locacao";

                    //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 Locacao
                    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, "Locacao");

                        //Recupera as informações do dataset e guarda em lista para retornar para a VIEW
                        List <Locacao> lstRetorno = ds.Tables["Locacao"].AsEnumerable().Select(x => new Locacao
                        {
                            Id           = x.Field <int>("id"),
                            DataInclusao = x.Field <DateTime>("data_inclusao"),
                            IdPagamento  = Convert.ToInt32(x.Field <Int16>("pagamento_id")),
                            IdCliente    = x.Field <int>("cliente_id"),
                            IdLocacao    = x.Field <int>("locacao_id")
                        }).ToList();
                        // lucas ver aqui com atencao
                        foreach (Locacao Locacao in lstRetorno)
                        {
                            // Recuperando a data da inclusao do pagamento
                            DataInclusaoController data_inclusaoController = new DataInclusaoController();
                            Locacao.DataInclusao = data_inclusaoController.BuscarPorId(Locacao.data_inclusao);

                            // Recuperando o pagamento
                            PagamentoController pagamentoController = new PagamentoController();
                            Locacao.Pagamento = pagamentoController.BuscarPorId(Locacao.IdPagamento);

                            // Recuperando o id do cliente
                            ClienteController clienteController = new ClienteController();
                            Locacao.Cliente = clienteController.BuscarPorId(Locacao.IdCliente);

                            // Recuperando a locacao
                            LocacaoController locacaoController = new LocacaoController();
                            Locacao.Locacao = LocacaoController.BuscarPorId(Locacao.IdLocacao);
                        }

                        //Retorna a informação recuperada
                        return(lstRetorno);
                    }
                }
            }
        }