Example #1
0
        public async Task <IActionResult> Create(FilmCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                Film toBeAddedFilm = new Film
                {
                    Description = model.Description,
                    ReleaseDate = model.ReleaseDate,
                    Genre       = model.Genre,
                    Producer    = model.Producer,
                    Title       = model.Title,
                    Url         = model.Url
                };

                var user = await _userManager.GetUserAsync(HttpContext.User);

                _mediaDbContext.Films.Add(toBeAddedFilm);
                await _mediaDbContext.SaveChangesAsync();

                UserFilm newConnection = new UserFilm
                {
                    User   = user,
                    UserId = user.Id,
                    Film   = toBeAddedFilm,
                    FilmId = toBeAddedFilm.Id
                };
                _mediaDbContext.UserFilms.Add(newConnection);
                await _mediaDbContext.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,DateRented,DateReturned,UserId,FilmId")] UserFilm userFilm)
        {
            if (id != userFilm.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(userFilm);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UserFilmExists(userFilm.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmId"] = new SelectList(_context.Films, "Id", "Genero", userFilm.FilmId);
            ViewData["UserId"] = new SelectList(_context.Users, "Id", "Name", userFilm.UserId);
            return(View(userFilm));
        }
Example #3
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Daterental,Returndate")] UserFilm userFilm)
        {
            if (id != userFilm.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(userFilm);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UserFilmExists(userFilm.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(userFilm));
        }
Example #4
0
        public async Task <IActionResult> Create([Bind("Id,Daterental,Returndate")] UserFilm userFilm)
        {
            if (ModelState.IsValid)
            {
                _context.Add(userFilm);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(userFilm));
        }
Example #5
0
        public async Task <IActionResult> Create([Bind("Id,DateRented,DateReturned,UserId,FilmId")] UserFilm userFilm)
        {
            if (ModelState.IsValid)
            {
                _context.Add(userFilm);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmId"] = new SelectList(_context.Films, "Id", "Genero", userFilm.FilmId);
            ViewData["UserId"] = new SelectList(_context.Users, "Id", "Name", userFilm.UserId);
            return(View(userFilm));
        }
Example #6
0
        public async Task <IActionResult> ConfirmarDevolucion(int id)
        {
            UserFilm alquiler = await _context.UserFilm.Include(x => x.Film).FirstOrDefaultAsync(x => x.Id == id);

            alquiler.Returndate = DateTime.Now; // Le damos una fecha de devolucion
            Film film = alquiler.Film;

            film.Rented = "No"; // cambiamos estado pelicula
            _context.Update(alquiler);
            _context.Update(film);
            await _context.SaveChangesAsync();

            return(RedirectToAction("index", "Films"));
        }
Example #7
0
        public async Task <IActionResult> ConfirmarDevolucion(int id)
        {
            UserFilm alquiler = await _context.UserFilms.Include(x => x.Film).FirstOrDefaultAsync(x => x.Id == id);

            alquiler.DateReturned = DateTime.Now;
            Film film = alquiler.Film;

            film.Rented = false;
            _context.Update(alquiler);
            _context.Update(film);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Index", "Films"));
        }
Example #8
0
        public async Task <IActionResult> ConfirmarDevolucion(int id)
        {
            UserFilm alquiler = await _context.UsersFilms.Include(x => x.Film).FirstOrDefaultAsync(x => x.Id == id);

            alquiler.ReturnDate = DateTime.Now;
            Film film = alquiler.Film; //La pelicula vinculada a alquiler

            film.Rented = "Disponible";
            _context.Update(alquiler);
            _context.Update(film);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Index", "Films"));
        }
Example #9
0
        public async Task <IActionResult> Return(int id)
        {
            UserFilm userFilm = await _context.UserFilm.Include(x => x.Film).FirstOrDefaultAsync(x => x.Id == id);

            userFilm.DateReturn = DateTime.Now;
            _context.Update(userFilm);
            await _context.SaveChangesAsync();

            Film rentedFilm = await _context.Film.FindAsync(userFilm.Film.Id);

            rentedFilm.Rented = false;
            _context.Update(userFilm.Film);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Example #10
0
        public async Task <IActionResult> Rent(int filmId)
        {
            Film rentedFilm = await _context.Film.FindAsync(filmId);

            rentedFilm.Rented = true;
            _context.Update(rentedFilm);
            await _context.SaveChangesAsync();

            UserFilm newRent = new UserFilm()
            {
                DateRental = DateTime.Now,
                Film       = rentedFilm,
                User       = await _context.User.FindAsync(1)
            };

            _context.Add(newRent);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Example #11
0
        public async Task <IActionResult> Rent(int id)
        {
            //simular User id = 2

            UserFilm uf1 = new UserFilm
            {
                DateRental = DateTime.Now,
                ReturnDate = DateTime.Now.AddDays(3),
                FilmId     = id,
                Film       = await _context.Film.FindAsync(id),
                UserId     = 1,
                User       = await _context.User.FindAsync(1)
            };

            uf1.Film.Rented = true;

            _context.Add(uf1);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Example #12
0
        public async Task <IActionResult> ConfirmarAlquiler(int id)
        {
            Film film = await _context.Film.FindAsync(id); //localiza el film por id

            User user = await _context.User.FindAsync(1);

            UserFilm alquiler = new UserFilm
            {
                Film       = film, // no hace falta filmid ni userid, al tener el user y el film los coge.
                User       = user,
                Daterental = DateTime.Now,
            };

            _context.Add(alquiler);            // añadir objeto a tabla UserFilm
            film.Rented = "Si";                // cambiamos estado pelicula
            _context.Update(film);             // actualizamos tabla film
            await _context.SaveChangesAsync(); // guardar cambios BBDD

            return(RedirectToAction("index")); // redirige al metodo Index del controller.
            //RedirectToAction(nameof(Index)); // lo mismo que el anterior
            //RedirectToAction("Index","Films"); // Redirige al Index de otro controlador. UTIL.
        }
Example #13
0
        public async Task <IActionResult> ConfirmarAlquiler(int id)
        {
            Film film = await _context.Films.FindAsync(id);

            User user = await _context.Users.FindAsync(1);

            UserFilm alquiler = new UserFilm
            {
                Film       = film,
                User       = user,
                DateRented = DateTime.Now,
            };

            _context.Add(alquiler);
            film.Rented = true;
            _context.Update(film);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Index"));
            //RedirectToAction("Index","Films");
            //RedirectToAction(nameof(Index));
        }
Example #14
0
        public async Task <IActionResult> ConfirmarAlquiler(int id)
        {
            Film film = await _context.Films.FindAsync(id);

            User user = await _context.Users.FindAsync(1);

            UserFilm alquiler = new UserFilm
            {
                Film       = film,
                User       = user,
                DataRental = DateTime.Now,
            };

            _context.Add(alquiler);            //añadir el nuevo registro de alquiler
            film.Rented = "Ocupada";
            _context.Update(film);             //Actualizar la base de datos de la película
            await _context.SaveChangesAsync(); //Guardar los cambios en la BBDD

            //Redirigir a los datos del usuario Mis Alquileres
            return(RedirectToAction("Index", "Users"));
            //Primero se pone el método al que lo quieres redirigir y luego el controlador
        }
Example #15
0
        public async Task <IActionResult> DevolverPelicula(int id)
        {
            UserFilm alquiler = await _context.UserFilm.Include(x => x.Film).FirstOrDefaultAsync(x => x.Id == id); //Include para los datos d ela peli, y aqui no deja usar Find asi que usamos FirstOrDefault que es lo mismo.

            return(View(alquiler));
        }
Example #16
0
        public async Task <IActionResult> DevolverPelicula(int id)
        {
            UserFilm alquiler = await _context.UserFilms.Include(x => x.Film).FirstOrDefaultAsync(x => x.Id == id);

            return(View(alquiler));
        }