예제 #1
0
 public static Movie ToDTA(this Database.Movies movie)
 {
     return(new Movie
     {
         Title = movie.Title,
         CoverImage = movie.Cover,
         Description = movie.Description,
         Genres = ((MovieCrawler.Domain.Model.MovieGenre)movie.Genres).ToDTA(),
         Streams = movie.MovieStreamSet.Select(li => li.ToDTA()).ToList()
     });
 }
예제 #2
0
        public string AddMovies()
        {
            if (!_context.Movies.Any())
            {
                var movie1 = new Database.Movies()
                {
                    Title       = "Spider-Man: Far from Home",
                    Year        = 2019,
                    Duration    = "2:49",
                    Rating      = (decimal)7.6,
                    Description = "Following the events of Avengers: Endgame (2019), Spider-Man must step up to take on new threats in a world that has changed forever.",
                    Cast        = "Tom Holland, Samuel L. Jackson, Jake Gyllenhaal",
                    TrailerLink = "https://www.youtube.com/embed/Nt9L1jCKGnE",
                    ImageLink   = "https://m.media-amazon.com/images/M/MV5BMGZlNTY1ZWUtYTMzNC00ZjUyLWE0MjQtMTMxN2E3ODYxMWVmXkEyXkFqcGdeQXVyMDM2NDM2MQ@@._V1_SY1000_CR0,0,674,1000_AL_.jpg",
                    Standalone  = false,
                    Price       = (decimal)20.00,
                    Genre       = "Fantasy"
                };

                var movie2 = new Database.Movies()
                {
                    Title       = "Joker",
                    Year        = 2019,
                    Duration    = "2:25",
                    Rating      = (decimal)8.8,
                    Description = "In Gotham City, mentally-troubled comedian Arthur Fleck is disregarded and mistreated by society. He then embarks on a downward spiral of revolution and bloody crime. This path brings him face-to-face with his alter-ego: 'The Joker'.",
                    Cast        = " Joaquin Phoenix, Robert De Niro, Zazie Beetz",
                    TrailerLink = "https://www.youtube.com/embed/zAGVQLHvwOY",
                    ImageLink   = "https://m.media-amazon.com/images/M/MV5BNGVjNWI4ZGUtNzE0MS00YTJmLWE0ZDctN2ZiYTk2YmI3NTYyXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_SY1000_CR0,0,674,1000_AL_.jpg",
                    Standalone  = false,
                    Price       = (decimal)20.00,
                    Genre       = "Drama"
                };

                _context.Movies.AddRange(movie1, movie2);
                _context.SaveChanges();


                return("Initialized");
            }
            else
            {
                throw new UserException("The database is already initialized with movies!");
            }
        }
예제 #3
0
        public static void SaveMovieInformation(this Database.MoviesContext context, Database.Movies dbMovie, MovieInfo movieInfo)
        {
            context.Movies.InsertOnSubmit(dbMovie);

            foreach (var streamSet in movieInfo.Streams)
            {
                var dbStreamSet = new Database.MovieStreamSet
                {
                    Movies        = dbMovie,
                    AddressSource = movieInfo.Link.ToString(),
                };

                context.Captions.InsertAllOnSubmit(streamSet.Captions.Select(li => new Database.Captions
                {
                    MovieStreamSet = dbStreamSet,
                    Language       = li.Language,
                    Address        = li.Address
                }));

                context.VideoStream.InsertAllOnSubmit(streamSet.VideoStreams.Select(li => new Database.VideoStream
                {
                    MovieStreamSet = dbStreamSet,
                    Resolution     = (byte)li.Resolution,
                    VideoAddress   = li.AVStream,
                }));

                context.StreamCookie.InsertAllOnSubmit(streamSet.Cookies.Cast <System.Net.Cookie>().Select(li => new Database.StreamCookie
                {
                    MovieStreamSet = dbStreamSet,
                    Value          = SerializationUtils.SerializeCookie(li),
                    ExpirationDate = li.Expires
                }));

                context.StreamHeaders.InsertAllOnSubmit(streamSet.Headers.Select(li => new Database.StreamHeaders
                {
                    MovieStreamSet = dbStreamSet,
                    Name           = li.Key,
                    Value          = li.Value,
                }));
            }
        }
예제 #4
0
        private void Builder_OnMovieLoaded(object sender, MovieBuildedEventArgs e)
        {
            var movieInfo = e.MovieInfo;
            var dbMovie   = new Database.Movies
            {
                ProviderId  = provider.Id,
                Title       = movieInfo.Title,
                Year        = movieInfo.Year,
                Description = movieInfo.Description,
                Link        = movieInfo.Link.ToString(),
                Genres      = (int)movieInfo.Genre,
                CreatedDate = DateTime.Now
            };

            if (movieInfo.CoverImage != null)
            {
                dbMovie.Cover = movieInfo.CoverImage.ToString();
            }

            context.SaveMovieInformation(dbMovie, movieInfo);
            provider.LastMovieTitleProcessed = movieInfo.Title;
            context.SubmitChanges();
        }