//
        // GET: /gestion_reserva_autos/
        /// <summary>
        /// Metodo que muestra la pantalla principal para buscar automoviles
        /// </summary>
        /// <returns></returns>
        public ActionResult M19_Reserva_Autos()
        {
            CVistaReservaAuto model = new CVistaReservaAuto();
            Command <Dictionary <int, Entidad> > comando = FabricaComando.crearM19ObtenerPaises();

            model._paises = comando.ejecutar();

            //Aca puedo devolver
            return(PartialView(model));
        }
        public override List <Entidad> ejecutar()
        {
            try
            {
                System.Diagnostics.Debug.WriteLine("LLEGA A EJECUTAR");
                CVistaReservaAuto obj = (CVistaReservaAuto)_objeto;
                System.Diagnostics.Debug.WriteLine("ATRIBUTOS DEL OBJETO ---- idorigen: " + obj._ciudadOrigen + ", iddestino: " + obj._ciudadDestino + ", fechaini: " + obj._fechaini + ", fechafin: " + obj._fechafin + ", horaini: " + obj._horaIni + ", horafin: " + obj._horaFin);


                IDAOReservaAutomovil reservaAutomovilDao = FabricaDAO.ReservaAutomovilBD();
                return(reservaAutomovilDao.ConsultarAutosPorIdCiudades(this._objeto));
            }
            catch (NotImplementedException)
            {
                throw;
            }
        }
        /// <summary>
        /// Metodo para consultar automoviles segun el id de Lugar
        /// </summary>
        /// <param name="_automovil">Variable tipo en entidad que luego debe ser casteada a su tipo para metodos get y set</param>
        /// <returns>Lista de Entidades, ya que se devuelve mas de una fila de la BD, se debe castear a su respectiva clase en el Modelo</returns>
        public List <Entidad> ConsultarAutosPorIdCiudades(Entidad _datos)
        {
            System.Diagnostics.Debug.WriteLine("LLEGA AL DAO");
            CVistaReservaAuto obj = (CVistaReservaAuto)_datos;

            System.Diagnostics.Debug.WriteLine("ATRIBUTOS DEL OBJETO ---- idorigen: " + obj._ciudadOrigen + ", iddestino: " + obj._ciudadDestino + ", fechaini: " + obj._fechaini + ", fechafin: " + obj._fechafin + ", horaini: " + obj._horaIni + ", horafin: " + obj._horaFin);

            List <Parametro>  parametro        = FabricaDAO.asignarListaDeParametro();
            List <Entidad>    listaDeAutomovil = FabricaEntidad.asignarListaDeEntidades();
            DataTable         tablaDeDatos;
            Entidad           automovil;
            CVistaReservaAuto datos = (CVistaReservaAuto)_datos; //Se castea a tipo Lugar para poder utilizar sus metodos

            //Atributos tabla Automovil
            String matricula;
            String modelo;
            String fabricante;
            int    anio;
            int    cantPasajeros;
            String tipo;
            double precioAquiler;
            String color;
            int    disponibilidad;
            String transmision;
            int    idCiudad;

            try
            {
                //Aqui se asignan los valores que recibe el procedimiento para realizar el select
                parametro.Add(FabricaDAO.asignarParametro(RecursoDAOM19.raut_fk_ciudad_entrega, SqlDbType.Int, datos._ciudadOrigen.ToString(), false));

                //el metodo Ejecutar Store procedure recibe la lista de parametros como el query, este ultimo es el nombre del procedimietno en la BD
                tablaDeDatos = EjecutarStoredProcedureTuplas(RecursoDAOM19.procedimientoConsultarACiudad, parametro);

                System.Diagnostics.Debug.WriteLine("PASA EL STORED PROCEDURE TUPLAS");


                // For each row, print the values of each column.
                foreach (DataRow row in tablaDeDatos.Rows)
                {
                    foreach (DataColumn column in tablaDeDatos.Columns)
                    {
                        System.Diagnostics.Debug.WriteLine(row[column]);
                    }
                }

                foreach (DataRow Fila in tablaDeDatos.Rows)
                {
                    System.Diagnostics.Debug.WriteLine("ENTRA EN EL FOREACH");
                    System.Diagnostics.Debug.WriteLine("----------------");

                    matricula = Fila[RecursoDAOM19.autMatricula].ToString();
                    System.Diagnostics.Debug.WriteLine("TOMA MATRICULA: " + matricula);

                    modelo = Fila[RecursoDAOM19.autModelo].ToString();
                    System.Diagnostics.Debug.WriteLine("TOMA MODELO: " + modelo);

                    fabricante = Fila[RecursoDAOM19.autFabricante].ToString();
                    System.Diagnostics.Debug.WriteLine("TOMA FABRICANTE: " + fabricante);

                    tipo = Fila[RecursoDAOM19.autTipo].ToString();
                    System.Diagnostics.Debug.WriteLine("TOMA TIPO: " + tipo);

                    color = Fila[RecursoDAOM19.autColor].ToString();
                    System.Diagnostics.Debug.WriteLine("TOMA COLOR: " + color);

                    transmision = Fila[RecursoDAOM19.autTransmision].ToString();
                    System.Diagnostics.Debug.WriteLine("TOMA TRANSMISIÓN: " + transmision);

                    idCiudad = int.Parse(Fila[RecursoDAOM19.autFk_ciudad].ToString());
                    System.Diagnostics.Debug.WriteLine("TOMA CIUDAD: " + idCiudad);

                    precioAquiler = double.Parse(Fila[RecursoDAOM19.autPrecioalquiler].ToString());
                    System.Diagnostics.Debug.WriteLine("TOMA PRECIO ALQUILER: " + precioAquiler);

                    anio = int.Parse(Fila[RecursoDAOM19.autAnio].ToString());
                    System.Diagnostics.Debug.WriteLine("TOMA AÑO: " + anio);

                    cantPasajeros = int.Parse(Fila[RecursoDAOM19.autCantpasajeros].ToString());
                    System.Diagnostics.Debug.WriteLine("TOMA PASAJEROS: " + cantPasajeros);

                    disponibilidad = int.Parse(Fila[RecursoDAOM19.autDisponibilidad].ToString());
                    System.Diagnostics.Debug.WriteLine("TOMA DISPONIBILIDAD: " + disponibilidad);


                    automovil = FabricaEntidad.inicializarAutomovil(matricula, modelo, fabricante, tipo, color, transmision, idCiudad, precioAquiler, anio, cantPasajeros, disponibilidad, datos._fechaini, datos._fechafin, datos._horaIni, datos._horaFin, datos._ciudadOrigen, datos._ciudadDestino);

                    System.Diagnostics.Debug.WriteLine("CREA OBJETO DE CAUTOMOVIL");

                    listaDeAutomovil.Add(automovil);
                }

                return(listaDeAutomovil);
            }
            catch (Exception)
            {
                throw;
            }
        }