public ActionResult Edit(int?id) { if (!id.HasValue) { return(RedirectToAction(nameof(MovieController.Index))); } var userId = User.Identity.GetUserId(); var movie = MoviesHelper.GetMovieById(id.Value, userId); if (movie == null) { return(RedirectToAction(nameof(MovieController.Index))); } PopulateViewBag(); var model = new RegisterEditMovieViewModel(); model.Category = movie.Category; model.Rating = movie.Rating; model.MovieName = movie.Name; model.Description = movie.Description; return(View(model)); }
private ActionResult SaveMovie(int?id, RegisterEditMovieViewModel formData) { if (!ModelState.IsValid) { PopulateViewBag(); return(View()); } var userId = User.Identity.GetUserId(); if (MoviesHelper.CheckIfMovieAlreadyExists(id, formData.MovieName, userId)) { ModelState.AddModelError(nameof(RegisterEditMovieViewModel.MovieName), "Movie name should be unique"); PopulateViewBag(); return(View()); } string fileExtension; //Validating file upload if (formData.Media != null) { fileExtension = Path.GetExtension(formData.Media.FileName); if (!Constants.AllowedFileExtensions.Contains(fileExtension)) { ModelState.AddModelError("", "File extension is not allowed."); PopulateViewBag(); return(View()); } } Movie movie; if (!id.HasValue) { movie = new Movie(); movie.UserId = userId; DbContext.Movies.Add(movie); } else { movie = MoviesHelper.GetMovieById(id.Value, userId); if (movie == null) { return(RedirectToAction(nameof(MovieController.Index))); } movie.DateUpdated = DateTime.Now; } movie.Name = formData.MovieName; movie.Rating = formData.Rating.Value; movie.Category = formData.Category; movie.Description = formData.Description; //Handling file upload if (formData.Media != null) { if (!Directory.Exists(Constants.MappedUploadFolder)) { Directory.CreateDirectory(Constants.MappedUploadFolder); } var fileName = formData.Media.FileName; var fullPathWithName = Constants.MappedUploadFolder + fileName; formData.Media.SaveAs(fullPathWithName); movie.MediaUrl = Constants.UploadFolder + fileName; } if (id.HasValue) { var originalValues = DbContext.Entry(movie).OriginalValues; var currentValues = DbContext.Entry(movie).CurrentValues; foreach (var property in originalValues.PropertyNames) { if (property == nameof(Movie.DateUpdated)) { continue; } var originalValue = originalValues[property]?.ToString(); var currentValue = currentValues[property]?.ToString(); if (originalValue != currentValue) { var history = new MovieHistory(); history.OldValue = originalValue; history.NewValue = currentValue; history.DateCreated = DateTime.Now; history.Property = property; history.MovieId = id.Value; DbContext.MovieHistories.Add(history); } } } DbContext.SaveChanges(); return(RedirectToAction(nameof(MovieController.Index))); }
public ActionResult Register(RegisterEditMovieViewModel formData) { return(SaveMovie(null, formData)); }
public ActionResult Edit(int id, RegisterEditMovieViewModel formData) { return(SaveMovie(id, formData)); }