示例#1
0
        // [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();
        }
示例#4
0
 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) { }
     }
 }
示例#5
0
        // [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();
            }
        }