// [ValidateAntiForgeryToken] // [SwaggerResponse(statusCode: 400, type: typeof(Error), description: "Invalid action parameters")] // [SwaggerResponse(statusCode: 401, type: typeof(Error), description: "User is unauthorized to access this resource")] public async Task <IActionResult> UpdateMoviePosterById([FromBody] MoviePoster body, [FromRoute][Required] int moviePosterId) { var moviePoster = await _context.MoviePosters.SingleOrDefaultAsync(mp => mp.MoviePosterId == moviePosterId); if (moviePoster == null) { return(NotFound(new Error { Code = "404", Message = "Specified movie poster was not found" })); } moviePoster.Name = body.Name; moviePoster.Artist = body.Artist; moviePoster.Year = body.Year; moviePoster.PosterImageUrl = body.PosterImageUrl; try { await _context.SaveChangesAsync(); return(Ok(moviePoster)); } catch (DbUpdateException e) { return(NotFound(new Error { Code = "404", Message = "Error while updating movie poster" })); } //TODO: Uncomment the next line to return response 400 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(400, default(Error)); //TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(401, default(Error)); }
public void AddOrUpdateMovies(ICollection <MovieParsedModel> movies) { foreach (var movie in movies) { var movieFound = this.ctx.Movies.FirstOrDefault(m => m.Title == movie.Title); if (movieFound == null) { var newMovie = new Movie { Title = movie.Title, Plot = movie.Plot, Year = movie.Year, Rated = movie.Rated, Price = 30, ImdbRating = double.Parse(movie.ImdbRating), Runtime = ParseRuntime(movie.Runtime) }; var actorsList = ConvertStringToListOfStrings(movie.Actors); AddRolesToDbContext(actorsList, newMovie, "Actor"); var directorsList = ConvertStringToListOfStrings(movie.Director); AddRolesToDbContext(directorsList, newMovie, "Director"); var genresList = ConvertStringToListOfStrings(movie.Genres); foreach (var genre in genresList) { var currentGenre = AddGenreToDbContext(genre); newMovie.Genres.Add(currentGenre); } try { var poster = new MoviePoster() { Poster = this.webConverter.ImageFromUrlToByreArray(movie.PosterUrl) }; newMovie.Poster = poster; } catch (Exception ex) { Console.WriteLine(ex.Message); } this.ctx.Movies.Add(newMovie); this.ctx.SaveChanges(); } } }
private void submit_Click(object sender, RoutedEventArgs e) { Movie submittedMovie = new Movie(MovieTitle.Text, MovieGenre.Text, Convert.ToDouble(MovieReviewScore.Text), MovieDirector.Text, Convert.ToInt32(MovieLegnth.Text), MovieamountOfWoollyBearLikeness.Text, MovieMoviePoster.Text); MovieList.Add(submittedMovie); //submittedMovie.Title = MovieTitle.Text; //submittedMovie.Genre = MovieGenre.Text; // submittedMovie.ReviewScore = Convert.ToDouble(MovieReviewScore.Text); //submittedMovie.DisplayInformation(); MovieTitle.Clear(); MovieGenre.Clear(); MovieReviewScore.Clear(); MovieDirector.Clear(); MovieLegnth.Clear(); MovieamountOfWoollyBearLikeness.Clear(); MoviePoster.Clear(); }
void InitializeInfoFiels() { TitleLabel.Text = movie.Title; YearValueLabel.Text = movie.Year; RatedValueLabel.Text = movie.Rated; ReleasedValueLabel.Text = movie.Released; RuntimeValueLabel.Text = movie.Runtime; GenreValueLabel.Text = movie.Genre; DirectorValueLabel.Text = movie.Director; WriterValueLabel.Text = movie.Writer; ActorsValueLabel.Text = movie.Actors; PlotValueLabel.Text = movie.Plot; LanguageValueLabel.Text = movie.Language; CountryValueLabel.Text = movie.Country; if (movie.Poster != "N/A") { try { MoviePoster.Load(movie.Poster); } catch (WebException exception) { } } }
// [ValidateAntiForgeryToken] // [SwaggerResponse(statusCode: 401, type: typeof(Error), description: "User is unauthorized to access this resource")] public async Task <IActionResult> AddMoviePoster([FromBody] MoviePoster body) { //TODO: More robust dup check if (await _context.MoviePosters.AsNoTracking().SingleOrDefaultAsync(mp => mp.Name == body.Name || mp.PosterImageUrl == body.PosterImageUrl) != null) { return(BadRequest(new Error { Code = "400", Message = "Movie Poster already exists." })); } var newMoviePoster = new MoviePoster() { Name = body.Name, Year = body.Year, Artist = body.Artist, PosterImageUrl = body.PosterImageUrl, Reviews = new List <Review>() }; //TODO: Improve uniqueness check, e.g. flatten names, add directors? var movie = await _context.Movies.SingleOrDefaultAsync(m => m.Name == body.Name && m.Year == body.Year); // Create a new Movie for poster if it does not yet exist. Otherwise, update current one. if (movie == null) { //TODO: Improve Movie<->MoviePoster nav props? movie = new Movie { Name = body.Name, Year = body.Year, MoviePosters = new List <MoviePoster> { newMoviePoster } }; newMoviePoster.Movie = movie; _context.Movies.Add(movie); } else { movie.MoviePosters.Add(newMoviePoster); } _context.MoviePosters.Add(newMoviePoster); try { await _context.SaveChangesAsync(); return(StatusCode(201, newMoviePoster)); } catch (DbUpdateException e) { return(NotFound(new Error { Code = "404", Message = "Error while creating movie poster" })); } //TODO: Uncomment the next line to return response 400 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(400, default(Error)); //TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(401, default(Error)); }
public static void CreateSeedData(MoviePostersDbContext context) { if (context.MoviePosters.Any()) { return; } var movies = new Movie[] { new Movie() { MovieId = 1, Name = "Blade Runner", Year = 1982 }, new Movie() { MovieId = 2, Name = "Highlander", Year = 1986 }, new Movie() { MovieId = 3, Name = @"Schindler's List", Year = 1993 }, new Movie() { MovieId = 4, Name = "The Shining", Year = 1980 }, new Movie() { MovieId = 5, Name = "Vertigo", Year = 1958 } }; var moviePosters = new MoviePoster[] { new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250604/hilbert-poster-images/bfo8lhzcrej5fvco4l3w.jpg", MoviePosterId = 1, Name = "Blade Runner by DanKNorris", Year = 2014, Artist = "DanKNorris", MovieId = 1, Movie = movies[0], }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250605/hilbert-poster-images/dbigh1i3lq3yovm943ui.png", MoviePosterId = 2, Name = "Highlander by Eileen Steinbach", Year = 2018, Artist = "Eileen Steinbach", MovieId = 2, Movie = movies[1] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250606/hilbert-poster-images/vgex4exmf1uidt9ovuxr.jpg", MoviePosterId = 3, Name = "Highlander by Unknown", Year = 1986, Artist = "Unknown", MovieId = 2, Movie = movies[1] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250608/hilbert-poster-images/jqrliijupdnfqhh3wr4m.jpg", MoviePosterId = 4, Name = @"Schindler's List by Saul Bass", Year = 1993, Artist = "Saul Bass", MovieId = 3, Movie = movies[2] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250608/hilbert-poster-images/zz9gspbirvhnjlejoydt.png", MoviePosterId = 5, Name = "The Shining by Saul Bass", Year = 1980, Artist = "Saul Bass", MovieId = 4, Movie = movies[3] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250609/hilbert-poster-images/qzhe68aq6wfpavqxed7p.jpg", MoviePosterId = 6, Name = "Vertigo by Boris Grinsson", Year = 1957, Artist = "Boris Grinsson", MovieId = 5, Movie = movies[4] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250610/hilbert-poster-images/bqaylkhfugaqhd4rwsqs.jpg", MoviePosterId = 7, Name = "Vertigo by Enzo Nistri", Year = 1957, Artist = "Enzo Nistri", MovieId = 5, Movie = movies[4] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250611/hilbert-poster-images/zgyo9eeuaocu55gdmyak.jpg", MoviePosterId = 8, Name = "Vertigo by Roman Cieslewicz", Year = 1963, Artist = "Roman Cieslewicz", MovieId = 5, Movie = movies[4] }, new MoviePoster() { PosterImageUrl = "https://res.cloudinary.com/chaua0927/image/upload/v1569250613/hilbert-poster-images/ug7lheqvarlkzhmmpawx.jpg", MoviePosterId = 9, Name = "Vertigo by Saul Bass", Year = 1957, Artist = "Saul Bass", MovieId = 5, Movie = movies[4] } }; var reviews = new Review[] { new Review() { ReviewId = 1, Name = "Hauer", Rating = 3, Comment = "Like tears in rain...", MoviePosterId = 1, }, new Review() { ReviewId = 2, Name = "Kurgan", Rating = 1, Comment = "There can be only one...", MoviePosterId = 1, } }; context.Database.OpenConnection(); try { context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Movies ON"); foreach (Movie m in movies) { context.Movies.Add(m); } context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Movies OFF"); } finally { context.Database.CloseConnection(); } context.Database.OpenConnection(); try { context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.MoviePosters ON"); foreach (MoviePoster mp in moviePosters) { context.MoviePosters.Add(mp); } context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.MoviePosters OFF"); } finally { context.Database.CloseConnection(); } context.Database.OpenConnection(); try { context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Reviews ON"); foreach (Review r in reviews) { context.Reviews.Add(r); } context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT dbo.Reviews OFF"); } finally { context.Database.CloseConnection(); } }