예제 #1
0
        public static List <Alquiler> GetPeliculasAlquiladas()
        {
            List <Alquiler> reserva = new List <Alquiler>();
            string          query   = $"Select * from Alquileres where Usuario = {User.IdUsuario}";

            Conexion.Open();
            SqlCommand    cmd    = new SqlCommand(query, Conexion);
            SqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Alquiler r = ExtractAlquiler(reader);
                reserva.Add(r);
            }

            Conexion.Close();
            reserva.ForEach(x =>
            {
                if (x != null)
                {
                    x.Pelicula       = GetPelicula(x.PeliculaId);
                    x.TiempoPrestamo = GetTiempoPrestamo(x.TiempoReserva);
                }
            });
            return(reserva);
        }
예제 #2
0
        private static Alquiler ExtractAlquiler(SqlDataReader reader)
        {
            Alquiler r = new Alquiler();

            r.Id              = Convert.ToInt32(reader[0].ToString());
            r.UsuarioId       = Convert.ToInt32(reader[1].ToString());
            r.PeliculaId      = Convert.ToInt32(reader[2].ToString());
            r.FechaAlquiler   = Convert.ToDateTime(reader[3].ToString());
            r.TiempoReserva   = Convert.ToInt32(reader[4].ToString());
            r.FechaDevolucion = reader[5] != DBNull.Value ? Convert.ToDateTime(reader[5]) : (DateTime?)null;
            return(r);
        }
예제 #3
0
        public static void MisAlquileres(Usuario usuario)
        {
            int opcion;

            do
            {
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Console.WriteLine("\nEsta es la lista de películas que tiene alquidadas:\n");
                //Lista de peliculas alquiladas del usuario
                List <Alquiler> alquilerUsuario = new List <Alquiler>();

                string        query  = $"SELECT * FROM Alquiler WHERE IDUsuario={usuario.ID} AND FechaDevolucion IS NULL";
                SqlDataReader reader = ConsultarBase(query);
                while (reader.Read())
                {
                    Alquiler alquiler = new Alquiler(Convert.ToInt32(reader[0].ToString()), Convert.ToInt32(reader[1].ToString()), Convert.ToInt32(reader[2].ToString()), Convert.ToDateTime(reader[3].ToString())); //Para crear un objeto
                    alquilerUsuario.Add(alquiler);
                }
                connection.Close();

                //Le muestro la lista de peliculas que tiene alquiladas y que todavia no ha devuelto
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("\tNOMBRE || \tNÚMERO || \tTÍTULO PELÍCULA \t || \tFECHA DE ALQUILER || \t");
                Console.WriteLine("\t----------------------------------------------------------------");
                foreach (Alquiler item in alquilerUsuario)
                {
                    for (int i = 0; i < usuario.ListaPeliculasUsuario.Count; i++)
                    {
                        if (usuario.ListaPeliculasUsuario[i].ID == item.IDPelicula)
                        {
                            if (DateTime.Today >= item.FechaAlquiler.AddDays(2))
                            {
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine($"\t{usuario.Nombre} || \t{item.IDPelicula} ||\t{usuario.ListaPeliculasUsuario[i].Titulo} \t||\t{item.FechaAlquiler} ||");
                            }
                            else
                            {
                                Console.ForegroundColor = ConsoleColor.Cyan;
                                Console.WriteLine($"\t{usuario.Nombre} || \t{item.IDPelicula} ||\t{usuario.ListaPeliculasUsuario[i].Titulo} \t||\t{item.FechaAlquiler} ||");
                            }
                        }
                    }
                }

                Console.WriteLine("\nSi desea devolver alguna de las películas, introduzca el número correspondiente\n Si desea volver al menú principal pulse 0\n");
                string respuesta = Console.ReadLine();
                if (Int32.TryParse(respuesta, out opcion))
                {
                    //HACER UN BOOLEANO!!!!!!!!
                    //Recorrer la lista de peliculas alquiladas y cuando identifica la seleccionada modifica la BBDD
                    bool peliculaDevuelta = false;
                    foreach (Alquiler item in alquilerUsuario)
                    {
                        if (opcion == item.IDPelicula)
                        {
                            int idUsuario  = usuario.ID;
                            int idPelicula = item.IDPelicula;

                            query = $"Update Alquiler SET FechaDevolucion=GETDATE() WHERE IDUsuario={idUsuario} AND IDPelicula={idPelicula}"; //o ponerlo como GETDATE(), para que lo ejecute SQL
                            ModificarBase(query);

                            query = $"Update Peliculas SET ESTADO='DISPONIBLE' Where ID='{idPelicula}'";
                            ModificarBase(query);
                            Console.ForegroundColor = ConsoleColor.Cyan;
                            peliculaDevuelta        = true;
                        }
                    }
                    if (peliculaDevuelta == true)
                    {
                        Console.WriteLine($"{usuario.Nombre}, la devolución se ha realizado con éxito");
                        Console.ResetColor();
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("\n***La opción seleccionada no representa ninguna película***\n");
                        Console.WriteLine("\n***Opción no válida, debe introducir el dígito de una de las opciones***\n");
                        Console.ResetColor();
                        Console.ReadLine();
                        Console.Clear();
                    }
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("\n***Opción no válida, debe introducir el dígito de una de las opciones***\n");
                    Console.ResetColor();
                    Console.ReadLine();
                    Console.Clear();
                }
            } while (opcion != 2);
            Console.Clear();
            MenuSecundario(usuario);

            //Se le da la opcion al usuario de devolver la película
        }