/**
         * <summary>Metodo que muestra info de un evento dado su nombre</summary>
         * <params name="nombreEvento">nombre del evento</params>
         * <returns>El evento solicitado</returns>
         * */


        public Evento ConsultarEventoNombre(string nombreEvento)
        {
            Evento evento = new Evento();
            PeticionLocalidadEvento peticionLocalidadEvento = new PeticionLocalidadEvento();

            try
            {
                comando             = new NpgsqlCommand("ConsultarEventoPorIdNombre", conexion.SqlConexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Varchar, nombreEvento);
                read = comando.ExecuteReader();
                read.Read();
                //Creo un objeto de tipo categoria con un solo atributo nombre
                //y Busco el id de la categoria
                Categoria categoriaNombre = new Categoria();
                categoriaNombre.Nombre = read.GetString(9);
                PeticionCategoria peticionCategoria = new PeticionCategoria();
                Categoria         categoria         = peticionCategoria.ObtenerIdCategoriaPorNombre(categoriaNombre);

                evento.Id          = read.GetInt32(0);
                evento.Nombre      = read.GetString(1);
                evento.Descripcion = read.GetString(2);
                evento.Precio      = read.GetInt64(3);
                evento.FechaInicio = read.GetDateTime(4);
                evento.FechaFin    = read.GetDateTime(5);
                DateTime horaInicio = new DateTime();
                horaInicio.AddHours(read.GetTimeSpan(6).Hours);
                horaInicio.AddMinutes(read.GetTimeSpan(6).Minutes);
                evento.HoraInicio = horaInicio;
                DateTime horaFin = new DateTime();
                horaFin.AddHours(read.GetTimeSpan(7).Hours);
                horaFin.AddMinutes(read.GetTimeSpan(7).Minutes);
                evento.HoraFin     = horaFin;
                evento.Foto        = read.GetString(8);
                evento.IdCategoria = categoria.Id;
                evento.IdLocalidad = peticionLocalidadEvento.ConsultarLocalidadEventoPorNombre(read.GetString(10)).Id;
            }
            catch (BaseDeDatosExcepcion e)
            {
                e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name);
                e.Mensaje = "Problemas en la base de datos, en ConsultarEvento";

                throw e;
            }
            finally
            {
                conexion.Desconectar();
            }
            return(evento);
        }
        /**
         * <summary>Lista de eventos dado una fecha</summary>
         * <params name=fecha>fecha</params>
         * <returns>Retorna la informacion de todos los eventos a partir de esa fecha</returns>
         * */


        public List <Evento> ListaEventosPorFecha(DateTime fecha)
        {
            List <Evento> list = new List <Evento>();

            try
            {
                comando             = new NpgsqlCommand("ConsultarEventosPorFecha", conexion.SqlConexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Timestamp, fecha);
                read = comando.ExecuteReader();
                while (read.Read())
                {
                    //Creo un objeto de tipo categoria con un solo atributo nombre
                    //y Busco el id de la categoria
                    Categoria categoriaNombre = new Categoria();
                    categoriaNombre.Nombre = read.GetString(9);
                    PeticionCategoria peticionCategoria = new PeticionCategoria();
                    Categoria         categoria         = peticionCategoria.ObtenerIdCategoriaPorNombre(categoriaNombre);

                    PeticionLocalidadEvento peticionLocalidadEvento = new PeticionLocalidadEvento();
                    LocalidadEvento         localidad = peticionLocalidadEvento.ConsultarLocalidadEventoPorNombre(read.GetString(10));
                    DateTime horaInicio = new DateTime();
                    horaInicio.AddHours(read.GetTimeSpan(6).Hours);
                    horaInicio.AddMinutes(read.GetTimeSpan(6).Minutes);

                    DateTime horaFin = new DateTime();
                    horaFin.AddHours(read.GetTimeSpan(7).Hours);
                    horaFin.AddMinutes(read.GetTimeSpan(7).Minutes);

                    //Categoria categoria = peticionCategoria.ObtenerCategorias
                    Evento evento = new Evento(read.GetInt32(0), read.GetString(1), read.GetString(2), read.GetInt64(3), read.GetDateTime(4), read.GetDateTime(5),
                                               horaInicio, horaFin, read.GetString(8), categoria.Id, localidad.Id);
                    list.Add(evento);
                }
            }
            catch (BaseDeDatosExcepcion e)
            {
                e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name);
                e.Mensaje = "Problemas en la base de datos, en ConsultarEventosPorFecha";
                throw e;
            }

            finally {
                conexion.Desconectar();
            }
            return(list);
        }