Example #1
0
        public ActionResult AddFilm()
        {
            AddFilmViewModel vm = new AddFilmViewModel();

            vm.category = db.Categories.ToList();
            vm.film     = new Films();
            return(View(vm));
        }
Example #2
0
        /// <summary>
        /// This Action loads genres data and send it AddFilm view
        /// </summary>
        /// <returns>return IActionResult as response for the request</returns>
        public IActionResult AddFilm()
        {
            var genres         = _uow.GenreRepository.Get();
            var genreViewModel = new AddFilmViewModel {
                Genres = genres
            };

            return(View(genreViewModel));
        }
Example #3
0
        public ActionResult UpdateFilm(int filmId)
        {
            AddFilmViewModel vm = new AddFilmViewModel();

            vm.category = db.Categories.ToList();
            vm.source   = db.Sources.FirstOrDefault(s => s.SFId == filmId);
            var film = db.Films.Find(filmId);

            if (film == null)
            {
                return(HttpNotFound());
            }

            vm.film = film;

            return(View("AddFilm", vm));
        }
Example #4
0
        public async Task <IActionResult> AddFilm(IFormCollection form, AddFilmViewModel addFilmViewModel)
        {
            if (!ModelState.IsValid)
            {
                var genres         = _uow.GenreRepository.Get();
                var genreViewModel = new AddFilmViewModel {
                    Genres = genres
                };
                return(View(genreViewModel));
            }

            var uploads = Path.Combine(_appEnvironment.WebRootPath, "img", addFilmViewModel.PostedFile.FileName);

            await using (var fileStream = new FileStream(uploads, FileMode.Create))
            {
                await addFilmViewModel.PostedFile.CopyToAsync(fileStream);
            }

            var filmEntity = new Film
            {
                Title       = addFilmViewModel.Film.Title,
                Length      = addFilmViewModel.Film.Length,
                Url         = addFilmViewModel.PostedFile.FileName,
                Description = addFilmViewModel.Film.Description,
            };

            _uow.FilmRepository.Add(filmEntity);

            if (form["SelectedGenre"].Count > 0)
            {
                foreach (var filmGenre in form["SelectedGenre"].Select(item => _uow.GenreRepository.GetById(int.Parse(item))).Where(a => a.Deleted == 0).Select(genre => new FilmGenre
                {
                    Film = filmEntity,
                    Genre = genre
                }).Where(a => a.Deleted == 0))
                {
                    _uow.FilmGenreRepository.Add(filmGenre);
                }
            }

            _uow.Commit();

            return(RedirectToAction("Film"));
        }
Example #5
0
        /// <summary>
        /// get information from storage and send it to EditFilm View
        /// </summary>
        /// <param name="filmId">receive FilmId as a parameter</param>
        ///  <returns>return IActionResult as response for the request</returns>
        public IActionResult EditFilm(int filmId)
        {
            var film           = _uow.FilmRepository.GetById(filmId);
            var genres         = _uow.GenreRepository.Get();
            var selectedGenres = _uow.GenreRepository.Get().Include(a => a.FilmGenres)
                                 .Where(a => a.FilmGenres.Any(filmGenre => filmGenre.FilmId == filmId));
            var items = new List <SelectListItem>();

            foreach (var genre in selectedGenres)
            {
                var item = new SelectListItem(genre.GenreName, genre.GenreId.ToString());
                items.Add(item);
            }
            var genreViewModel = new AddFilmViewModel {
                SelectedGenres = items, Film = film, OriginalSelectedGenres = items, Genres = genres
            };

            return(View(genreViewModel));
        }
        public ActionResult EditFilm(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var film = db.Films.Find(id);

            if (film == null)
            {
                return(HttpNotFound());
            }
            else
            {
                var model = new AddFilmViewModel()
                {
                    Id          = film.Id,
                    Deleted     = film.Deleted,
                    Duration    = film.Duration,
                    Image       = film.Image,
                    Title       = film.Title,
                    Description = film.Description,
                    Creator     = film.Creator.Id,
                    FilmGenre   = film.FilmGenre.Id,
                    FilmGenres  = db.FilmGenres.Select(x =>
                                                       new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList(),

                    Creators = db.Creators.Select(x =>
                                                  new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList(),
                };

                return(View(model));
            }
        }
        //FILMY
        public ActionResult CreateFilm()
        {
            var model = new AddFilmViewModel
            {
                FilmGenres = db.FilmGenres.Select(x =>
                                                  new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList(),

                Creators = db.Creators.Select(x =>
                                              new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList(),
            };

            return(View(model));
        }
 private void Page_Loaded(object sender, RoutedEventArgs e)
 {
     _addFilmViewModel = DataContext as AddFilmViewModel;
 }
Example #9
0
        public async Task <IActionResult> EditFilm(IFormCollection form, AddFilmViewModel addFilmViewModel)
        {
            if (!ModelState.IsValid)
            {
                var film           = _uow.FilmRepository.GetById(addFilmViewModel.Film.FilmId);
                var genres         = _uow.GenreRepository.Get();
                var selectedGenres = _uow.GenreRepository.Get().Include(a => a.FilmGenres)
                                     .Where(a => a.FilmGenres.Any(filmGenre => filmGenre.FilmId == addFilmViewModel.Film.FilmId));

                var items = new List <SelectListItem>();
                foreach (var genre in selectedGenres)
                {
                    var item = new SelectListItem(genre.GenreName, genre.GenreId.ToString());
                    items.Add(item);
                }
                var genreViewModel = new AddFilmViewModel {
                    SelectedGenres = items, Film = film, OriginalSelectedGenres = items, Genres = genres
                };
                return(View(genreViewModel));
            }

            var uploads = Path.Combine(_appEnvironment.WebRootPath, "img", addFilmViewModel.PostedFile.FileName);

            await using (var fileStream = new FileStream(uploads, FileMode.Create))
            {
                await addFilmViewModel.PostedFile.CopyToAsync(fileStream);
            }

            var myFilm = _uow.FilmRepository.GetById(addFilmViewModel.Film.FilmId);

            myFilm.Title       = addFilmViewModel.Film.Title;
            myFilm.Length      = addFilmViewModel.Film.Length;
            myFilm.Url         = addFilmViewModel.PostedFile.FileName;
            myFilm.Description = addFilmViewModel.Film.Description;

            _uow.FilmRepository.Update(myFilm);

            var addItems    = form["SelectedGenre"].Except(form["OriginalSelectedGenre"]);
            var removeItems = form["OriginalSelectedGenre"].Except(form["SelectedGenre"]);

            foreach (var item in addItems)
            {
                var filmGenre = new FilmGenre {
                    FilmId = myFilm.FilmId, GenreId = int.Parse(item)
                };
                _uow.FilmGenreRepository.Add(filmGenre);
            }

            foreach (var item in removeItems)
            {
                var filmGenre = _uow.FilmGenreRepository.Get()
                                .Where(a => a.FilmId == myFilm.FilmId && a.GenreId == int.Parse(item)).Cast <FilmGenre>().FirstOrDefault();
                if (filmGenre == null)
                {
                    continue;
                }
                filmGenre.Deleted = 1;
                _uow.FilmGenreRepository.Update(filmGenre);
            }

            _uow.Commit();

            return(RedirectToAction("Film"));
        }
        public ActionResult CreateFilm(AddFilmViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model = new AddFilmViewModel
                {
                    FilmGenres = db.FilmGenres.Select(x =>
                                                      new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList(),

                    Creators = db.Creators.Select(x =>
                                                  new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList(),
                };

                return(View(model));
            }

            if (db.Films.Any(x => x.Title == model.Title))
            {
                model = new AddFilmViewModel
                {
                    FilmGenres = db.FilmGenres.Select(x =>
                                                      new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList(),

                    Creators = db.Creators.Select(x =>
                                                  new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList(),
                };

                ModelState.AddModelError(string.Empty, "Ten tytuł jest już używany dla innego filmu.");

                return(View(model));
            }

            var    fileName  = Path.GetFileNameWithoutExtension(model.ImageFile.FileName);
            string extension = Path.GetExtension(model.ImageFile.FileName);

            fileName    = fileName + DateTime.Now.ToString("yymmssfff") + extension;
            model.Image = "~/Content/img/" + fileName;
            fileName    = Path.Combine(Server.MapPath("~/Content/img/"), fileName);
            model.ImageFile.SaveAs(fileName);

            Film film = new Film();

            film.Duration    = model.Duration;
            film.Title       = model.Title;
            film.Description = model.Description;
            film.Image       = model.Image;
            film.Deleted     = model.Deleted;

            var filmGenre = db.FilmGenres.FirstOrDefault(c => c.Id == model.FilmGenre);

            film.FilmGenre = filmGenre;
            var creator = db.Creators.FirstOrDefault(c => c.Id == model.Creator);

            film.Creator = creator;

            db.Films.Add(film);
            db.SaveChanges();

            ModelState.Clear();
            return(RedirectToAction("FilmList"));
        }
        public ActionResult EditFilm(AddFilmViewModel model)
        {
            //var film = db.Films.Find(id);
            var film = db.Films.FirstOrDefault(x => x.Id == model.Id);

            if (!ModelState.IsValid)
            {
                model.FilmGenres = db.FilmGenres.Select(x =>
                                                        new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

                model.Creators = db.Creators.Select(x =>
                                                    new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

                model.Image = film.Image;

                return(View(model));
            }

            if (db.Films.Any(x => x.Title == model.Title))
            {
                model.FilmGenres = db.FilmGenres.Select(x =>
                                                        new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

                model.Creators = db.Creators.Select(x =>
                                                    new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

                model.Image = film.Image;

                ModelState.AddModelError(String.Empty, "Ten tytuł jest już w bazie.");

                return(View(model));
            }

            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {
                    var    fileName  = Path.GetFileNameWithoutExtension(model.ImageFile.FileName);
                    string extension = Path.GetExtension(model.ImageFile.FileName);
                    fileName    = fileName + DateTime.Now.ToString("yymmssfff") + extension;
                    model.Image = "~/Content/img/" + fileName;
                    fileName    = Path.Combine(Server.MapPath("~/Content/img/"), fileName);
                    model.ImageFile.SaveAs(fileName);

                    film.Image = model.Image;
                }
            }

            film.Deleted     = model.Deleted;
            film.Duration    = model.Duration;
            film.Title       = model.Title;
            film.Description = model.Description;
            var filmGenre = db.FilmGenres.FirstOrDefault(c => c.Id == model.FilmGenre);

            film.FilmGenre = filmGenre;
            var creator = db.Creators.FirstOrDefault(c => c.Id == model.Creator);

            film.Creator = creator;

            db.Entry(film).State = EntityState.Modified;
            db.SaveChanges();
            ModelState.Clear();

            return(RedirectToAction("FilmList"));
        }