Пример #1
0
        public FilmDetails(Film film)
        {
            _url ="Http://www.IMDB.com/title/tt" + film.IMDBId;
            _film = film;
            InitializeComponent();
            var bgw = new BackgroundWorker {WorkerReportsProgress = true};
            bgw.ProgressChanged += (o, args) =>
                                       {

                                       };
            bgw.DoWork += loadPicture;
            bgw.RunWorkerCompleted += (o, args) =>
                                          {
                                              lbl_picloading.Visible = false;
                                          };
            bgw.RunWorkerAsync();
            populate();
            timer1.Enabled = true;
        }
Пример #2
0
        public bool Execute()
        {
            var mayCommit = true;

            var nhSession = NhContext.GetSession();
            using (var tx = nhSession.BeginTransaction())
            {
                var newFilms = new List<Film>();

                foreach (var film in Films)
                {
                    var realNewFilm = new Film();
                    if(GetFilmFromCache(film.IMDBId) != null || nhSession.Query<Film>().Where(x => x.IMDBId == film.IMDBId).Any())
                        continue;
                    AddFilmToCache(film);
                    realNewFilm.FilmPath = film.FilmPath;
                    realNewFilm.IMDBId = film.IMDBId;
                    realNewFilm.ReleaseYear = film.ReleaseYear;
                    realNewFilm.RunTime = film.RunTime;
                    realNewFilm.Synopsis = film.Synopsis;
                    realNewFilm.Title = film.Title;
                    realNewFilm.Keywords = film.Keywords;
                    realNewFilm.DirectorIndexing = film.DirectorIndexing;
                    realNewFilm.GenreIndexing = film.GenreIndexing;
                    realNewFilm.CharIndexing = film.CharIndexing;
                    realNewFilm.PersonIndexing = film.PersonIndexing;
                    realNewFilm.PicURL = film.PicURL;
                    realNewFilm.IMDBRating = film.IMDBRating;

                    foreach (var person in film.Director)
                    {
                        var director = GetPersonFromCache(person.IMDBID) ??
                                       nhSession.Query<Person>().Where(x => x.IMDBID == person.IMDBID).
                                           SingleOrDefault() ?? person;
                        AddPersonToCache(director);
                        realNewFilm.Director.Add(director);
                    }

                    foreach (var person in film.Writers)
                    {
                        var writer = GetPersonFromCache(person.IMDBID) ??
                                     nhSession.Query<Person>().Where(x => x.IMDBID == person.IMDBID).
                                         SingleOrDefault() ?? person;
                        AddPersonToCache(writer);
                        realNewFilm.Writers.Add(writer);
                    }

                    foreach (var genre in film.Genre)
                    {
                        var type = GetTypeFromCache(genre.Type) ??
                                   nhSession.Query<FilmType>().Where(x => x.Type == genre.Type).
                                       SingleOrDefault() ?? genre;
                        AddTypeToCache(type);
                        realNewFilm.Genre.Add(type);
                    }

                    foreach (var role in film.Cast)
                    {
                        var actor = GetPersonFromCache(role.Person.IMDBID)
                                    ??
                                    nhSession.Query<Person>().Where(x => x.IMDBID == role.Person.IMDBID).
                                        SingleOrDefault()
                                    ?? role.Person;
                        AddPersonToCache(actor);
                        var role2 = new Role
                                        {
                                            Character = role.Character,
                                            Person = actor
                                        };
                        realNewFilm.Cast.Add(role2);
                    }
                    newFilms.Add(realNewFilm);
                }

                var validator = new FilmValidator();
                foreach (var newFilm in newFilms)
                {
                    var results = validator.Validate(newFilm);
                    if (results.IsValid)
                    {
                        nhSession.Save(newFilm);
                    }
                    else
                    {
                        ValidationErrors.Add(newFilm.IMDBId, results.Errors);
                        mayCommit = false;
                    }
                }

                if (mayCommit)
                    tx.Commit();
            }
            return mayCommit;
        }
Пример #3
0
 void AddFilmToCache(Film film)
 {
     if (!_filmDictonary.ContainsKey(film.IMDBId))
         _filmDictonary[film.IMDBId] = film;
 }
Пример #4
0
 private ImageList GetImageList(Film film)
 {
     var nil = new ImageList {ImageSize = new Size(32, 32)};
     for (int i = 0; i < _il.Images.Count; i++)
     {
         if (i == _previousIndex)
         {
             if (film.PicURL != "/images/b.gif" && !string.IsNullOrEmpty(film.PicURL))
             {
                 var pic = new DownloadImage(film.PicURL);
                 pic.Download();
                 nil.Images.Add(pic.GetImage() ?? Properties.Resources.no_image);
             }
             else
             {
                 nil.Images.Add(Properties.Resources.no_image);
             }
         }
         else
         {
             nil.Images.Add(_il.Images[i]);
         }
     }
     return nil;
 }
Пример #5
0
 void DeleteFilm(Film film)
 {
     if (HasFilm(film.FilmPath))
         _filmDic.Remove(film.FilmPath);
 }
Пример #6
0
 public FilmResult(Film film)
 {
     PossibleErrors = null;
     IMDBRating = film.IMDBRating;
     Title = film.Title;
     Director = film.Director;
     Id = film.Id;
     OnExternalMedia = film.OnExternalMedia;
     FilmPath = film.FilmPath;
     IMDBId = film.IMDBId;
     PicURL = film.PicURL;
     RunTime = film.RunTime;
     ReleaseYear = film.ReleaseYear;
     Cast = film.Cast;
     Genre = film.Genre;
     Synopsis = film.Synopsis;
     Keywords = film.Keywords;
     TrailerLink = film.TrailerLink;
     Writers = film.Writers;
     DirectorIndexing = film.DirectorIndexing;
     GenreIndexing = film.GenreIndexing;
     CharIndexing = film.CharIndexing;
     PersonIndexing = film.PersonIndexing;
 }