示例#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));
        }
示例#2
0
        public async Task <IActionResult> Create(FilmCreateViewModel model, CancellationToken token, string returnUrl = null)
        {
            AddBreadcrumb("Films", "/Film/All");
            AddBreadcrumb("Create", "/Film/Create");
            ViewData["ReturnUrl"] = returnUrl;

            if (ModelState.IsValid)
            {
                var film = new Film
                {
                    Title       = model.Title,
                    Description = model.Description,
                    Genre       = model.Genre,
                    Duration    = TimeSpan.FromSeconds(long.Parse(model.Duration)),
                    ReleaseDate = DateTime.ParseExact(model.ReleaseDate, "MM\\/dd\\/yyyy", CultureInfo.InvariantCulture),
                    TrailerUrl  = model.TrailerUrl,
                    IsActive    = true,
                    Company     = await GetCompany(token)
                };

                var addedFilm = await _filmRepository.AddAsync(film, token);

                await _blobRepository.Upload(addedFilm.Id, model.PosterImage);

                return(RedirectToAction(nameof(All), "Film"));
            }

            return(View(model));
        }
        public IActionResult Create(FilmCreateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var userId = User.UserId();

            var film = new Film
            {
                AddedAt = !string.IsNullOrEmpty(userId) ? new User {
                    Id = userId
                } : null,
                Name        = model.Name,
                Description = model.Description,
                Year        = model.Year,
                Director    = new Director {
                    Name = model.Director
                }
            };

            if (model.Poster is not null)
            {
                film.Poster = _fileHelper.SaveUploadedFile(model.Poster);
            }

            film = _filmService.Create(film);

            return(RedirectToAction("Details", new { film.Id }));
        }
示例#4
0
        public async Task <IActionResult> Create(FilmCreateViewModel model, List <int> Genres, List <string> Regi)
        {
            Regi.RemoveAt(Regi.Count() - 1);
            Film film = new Film()
            {
                Beschrijving = model.Beschrijving,
                Titel        = model.Titel,
                Lengte       = model.Lengte,
                Zichtbaar    = true,
            };

            if (model.Foto != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await model.Foto.CopyToAsync(memoryStream);

                    film.Foto = memoryStream.ToArray();
                }
            }
            _context.Film.Add(film);
            _context.SaveChanges();
            Film newFilm = _context.Film.FirstOrDefault(x => x.Titel == film.Titel && x.Beschrijving == film.Beschrijving && x.Lengte == film.Lengte);

            foreach (var genre in Genres)
            {
                _context.GenreFilm.Add(new GenreFilm()
                {
                    FilmId = newFilm.Id, GenreId = genre
                });
            }
            foreach (var regisseur in Regi)
            {
                FilmRegisseur FR = _context.FilmRegisseur.FirstOrDefault(x => x.Naam == regisseur);
                if (FR != null)
                {
                    _context.RegisseurFilm.Add(new RegisseurFilm()
                    {
                        FilmId = newFilm.Id, RegisseurId = FR.Id
                    });
                    _context.SaveChanges();
                }
                else
                {
                    _context.FilmRegisseur.Add(new FilmRegisseur()
                    {
                        Naam = regisseur
                    });
                    _context.SaveChanges();
                    _context.RegisseurFilm.Add(new RegisseurFilm()
                    {
                        FilmId = newFilm.Id, RegisseurId = _context.FilmRegisseur.FirstOrDefault(x => x.Naam == regisseur).Id
                    });
                    _context.SaveChanges();
                }
            }

            return(RedirectToAction("Detail", new { newFilm.Id }));
        }
示例#5
0
        public async Task <IActionResult> Create(CancellationToken token)
        {
            AddBreadcrumb("Films", "/Film/All");
            AddBreadcrumb("Create", "/Film/Create");

            var viewModel = new FilmCreateViewModel
            {
                ReleaseDate = DateTime.Now.ToString("MM\\/dd\\/yyyy")
            };

            return(View(viewModel));
        }
示例#6
0
 public IActionResult Create(FilmCreateViewModel model, bool regisseur)
 {
     if (regisseur == true)
     {
         if (string.IsNullOrEmpty(model.RegisseurToevoegen))
         {
             _context.Regisseurs.Add(new Regisseur()
             {
                 Naam = model.RegisseurToevoegen
             });
             _context.SaveChanges();
         }
         return(RedirectToAction("Create", model));
     }
     else
     {
         Film film = new Film()
         {
             Titel        = model.Titel,
             Speelduur    = model.Speelduur,
             Beschrijving = model.Beschrijving
         };
         using (MemoryStream stream = new MemoryStream())
         {
             model.Foto.CopyTo(stream);
             film.Foto = stream.ToArray();
         }
         _context.Films.Add(film);
         _context.SaveChanges();
         foreach (var item in model.SelectedRegisseurs)
         {
             _context.FilmRegisseurs.Add(new FilmRegisseur()
             {
                 FilmId = film.Id, RegisseurId = int.Parse(item)
             });
         }
         foreach (var item in model.Genres.Where(x => x.Checked == true))
         {
             _context.FilmGenres.Add(new FilmGenre()
             {
                 FilmId = film.Id, GenreId = item.Id
             });
         }
         _context.SaveChanges();
         return(RedirectToAction("Index"));
     }
 }
示例#7
0
        public IActionResult Create(FilmCreateViewModel modelInput)
        {
            FilmCreateViewModel model = modelInput;

            model.Genres = new List <CheckboxViewModel>();
            foreach (var item in _context.Regisseurs)
            {
                model.Regisseurs.Add(new SelectListItem(item.Naam, item.Id.ToString()));
            }
            foreach (var item in _context.GenreFilms)
            {
                model.Genres.Add(new CheckboxViewModel()
                {
                    Naam = item.Genrenaam, Id = item.Id
                });
            }
            return(View(model));
        }
示例#8
0
        public async Task <IActionResult> Create(FilmCreateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Create)));
            }
            int?producerId = null;

            if (!string.IsNullOrEmpty(model.Producer))
            {
                producerId = producers.LoadOrCreate(model.Producer);
            }
            int?posterId = null;

            if (model.Poster != null)
            {
                posterId = await posters.AddAsync(model.Poster);
            }

            Film film = new()
            {
                Year        = model.Year,
                Name        = model.Name,
                Description = model.Description,
                PosterId    = posterId,
                ProducerId  = producerId,
                UserId      = _signInManager.UserManager.GetUserId(User)
            };

            if (await films.AddAsync(film))
            {
                return(RedirectToAction(nameof(Edit), new { id = film.Id }));
            }
            ModelState.AddModelError(string.Empty, "Ошибка при сохранении");
            return(RedirectToAction(nameof(Create)));
        }
示例#9
0
        public IActionResult Create()
        {
            FilmCreateViewModel model = new FilmCreateViewModel();

            return(View(model));
        }