Esempio n. 1
0
 public imdbInfoForm(ImdbModel imdbInfo, object senderF, string senderN)
 {
     InitializeComponent( );
     iinfo      = imdbInfo;
     senderForm = senderF;
     senderName = senderN;
 }
Esempio n. 2
0
        private void btnGetByImdbId_Click(object sender, EventArgs e)
        {
            //IMDB ID
            if (!string.IsNullOrEmpty(txtImdbId.Text))
            {
                string imdbId = txtImdbId.Text;

                string logPath = @"D:\Development\Projects\MArchive\MArchiveImdbParser\_log";

                Directory.CreateDirectory(logPath);

                TextWriter tw    = new StreamWriter(logPath + logHelper.createLogFileName(string.Format("{0}", imdbId)));
                DateTime   start = DateTime.Now;
                tw.WriteLine("Start : " + start.ToString( ));

                ImdbModel iInfo = new ImdbModel( );
                try {
                    iInfo = ImdbHelper.getMovieInformation(imdbId, tw, start);
                    DateTime     finish      = DateTime.Now;
                    TimeSpan     processTime = finish - start;
                    imdbInfoForm frmImdbInfo = new imdbInfoForm(iInfo, this, "addnew");
                    //frmImdbInfo.MdiParent = this.MdiParent;
                    frmImdbInfo.Text += "  - " + processTime.Seconds.ToString( ) + "." + processTime.Milliseconds.ToString( ) + " saniye";
                    frmImdbInfo.Show( );
                } catch (Exception ex) { MessageBox.Show(ex.Message); }

                tw.WriteLine("End : " + DateTime.Now.ToString( ));
                tw.Close( );
            }
        }
Esempio n. 3
0
        public static ImdbModel getMovieInformation(string imdbId)
        {
            ImdbModel inf = new ImdbModel( );

            inf.id = imdbId;

            if (!string.IsNullOrEmpty(imdbId))
            {
                string tempHtml = "";

                tempHtml = GetMoviePageHtml(imdbId);

                calculateAndWriteProcessTime("Movie page called");

                if (tempHtml != "")
                {
                    inf.picturePath = GetPicturePath(tempHtml, imdbId);
                    calculateAndWriteProcessTime("Picture parsed");

                    inf.imdbRating = GetRating(tempHtml, imdbId);
                    calculateAndWriteProcessTime("Rating parsed");

                    inf.year = GetYear(tempHtml, imdbId);
                    calculateAndWriteProcessTime("Year parsed");

                    inf.genres = GetGenres(tempHtml, imdbId);
                    calculateAndWriteProcessTime("Genres parsed");

                    inf.languages = GetLanguages(tempHtml, imdbId);
                    calculateAndWriteProcessTime("Languages parsed");

                    //in this part, we will get a new html to parse.. it will be the "fullcredits"
                    tempHtml = GetMovieFullCreditsHtml(imdbId);
                    calculateAndWriteProcessTime("Full Credits page called");

                    if (tempHtml != "")
                    {
                        inf.directors = GetDirectors(tempHtml, imdbId);
                        calculateAndWriteProcessTime("Directors parsed");

                        inf.writers = GetWriters(tempHtml, imdbId);
                        calculateAndWriteProcessTime("Writers parsed");

                        inf.cast = GetCast(tempHtml, imdbId);
                        calculateAndWriteProcessTime("Cast parsed");
                    }
                    else
                    {
                        throw new Exception("Error while connecting to IMDB for full credits page");
                    }
                }
                else
                {
                    throw new Exception("Error while connecting to IMDB for movie page");
                }
            }

            return(inf);
        }
        private List <ImdbModel> GetMappedResults(List <GetimdbDataReturnModel> getimdbDataReturnModel)
        {
            List <ImdbModel> resObj = new List <ImdbModel>();

            getimdbDataReturnModel.ForEach(x =>
            {
                var matchRecord = resObj.FirstOrDefault(res => res.Movy.MovieId == x.MovieId);
                if (matchRecord == null)
                {
                    matchRecord = new ImdbModel
                    {
                        Movy = new Movy
                        {
                            MovieId = x.MovieId,
                            Bio     = x.MovieBio,
                            Name    = x.MovieName,
                            Plot    = x.MoviePlot,
                            Poster  = x.MoviePoster,
                            YoR     = x.YearOfRelease
                        },
                        Producer = new Producer
                        {
                            Bio        = x.ProducerBio,
                            Dob        = Convert.ToDateTime(x.ProducerDob),
                            Name       = x.ProducerName,
                            ProducerId = Convert.ToInt32(x.ProducerId),
                            Sex        = x.ProducerSex
                        },
                        Actors = new List <Actor>()
                    };
                    resObj.Add(matchRecord);
                }

                matchRecord.Actors.Add(
                    new Actor
                {
                    ActorId = x.ActorId,
                    Bio     = x.ActorBio,
                    Dob     = x.ActorDob,
                    Name    = x.ActorName,
                    Sex     = x.ActorSex
                });
            });
            return(resObj);
        }
Esempio n. 5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            ImdbModel temp = new ImdbModel( );

            //ID
            temp.id = iinfo.id;
            //Year
            if (txtYear.Text != "")
            {
                temp.year = (chkYear.Checked ? int.Parse(txtYear.Text) : 0);
            }
            else
            {
                temp.year = 0;
            }
            //Rating
            if (txtRating.Text != "")
            {
                temp.imdbRating = (chkRating.Checked ? double.Parse(txtRating.Text) : 0);
            }
            else
            {
                temp.imdbRating = 0;
            }
            //Picture
            temp.picturePath = (chkPicture.Checked ? iinfo.picturePath : "");
            //genre
            if (chkType.Checked)
            {
                temp.genres = new List <string> ( );
                for (int i = 0; i < lstType.Items.Count; i++)
                {
                    temp.genres.Add(lstType.Items[i].ToString( ));
                }
            }
            //cast
            if (chkCast.Checked)
            {
                temp.cast = new List <string> ( );
                for (int i = 0; i < lstCast.Items.Count; i++)
                {
                    temp.cast.Add(lstCast.Items[i].ToString( ));
                }
            }
            //director
            if (chkDirector.Checked)
            {
                temp.directors = new List <string> ( );
                for (int i = 0; i < lstDirector.Items.Count; i++)
                {
                    temp.directors.Add(lstDirector.Items[i].ToString( ));
                }
            }
            //writer
            if (chkWriter.Checked)
            {
                temp.writers = new List <string> ( );
                for (int i = 0; i < lstWriter.Items.Count; i++)
                {
                    temp.writers.Add(lstWriter.Items[i].ToString( ));
                }
            }
            //language
            if (chkLanguage.Checked)
            {
                temp.languages = new List <string> ( );
                for (int i = 0; i < lstLanguage.Items.Count; i++)
                {
                    temp.languages.Add(lstLanguage.Items[i].ToString( ));
                }
            }

            //post save operations
            //switch (senderName)
            //{
            //    case "addnew":
            //        addnew frmSender = (addnew)senderForm;
            //        frmSender.fillInformationFromImdb(temp);
            //        break;
            //    case "edit":
            //        edit frmSender2 = (edit)senderForm;
            //        frmSender2.fillInformationFromImdb(temp);
            //        break;
            //}
            this.Close( );
        }
Esempio n. 6
0
        private void getMovieInfoByIdAndSave(string imdbId, MovieDO movie, TextWriter tw, DateTime start)
        {
            ImdbModel imdbInfo = new ImdbModel( );

            try {
                imdbInfo = ImdbHelper.getMovieInformation(imdbId, tw, start);

                logHelper.logLine(tw, "Imdb information parsed successfully. Starting operation 'Basic Info'");

                #region Basic Info (not updated in db yet)
                if (string.IsNullOrEmpty(movie.ImdbID))
                {
                    movie.ImdbID = imdbId;
                }
                if (string.IsNullOrEmpty(movie.ImdbPoster) && !string.IsNullOrEmpty(imdbInfo.picturePath))
                {
                    string savePath = getSavePath( );
                    string fileName = FileSystemHelper.prepareFileNameForPicture(imdbInfo.picturePath.Substring(imdbInfo.picturePath.LastIndexOf('/')), new MovieNameModel {
                        OriginalName = movie.OriginalName
                    }, savePath);
                    WebRequestHelper.Download(imdbInfo.picturePath, savePath + fileName);
                    movie.ImdbPoster = fileName;
                }

                movie.ImdbRating = imdbInfo.imdbRating;
                if (movie.Year == null || movie.Year == 0)
                {
                    movie.Year = imdbInfo.year;
                }
                #endregion Basic Info

                logHelper.logLine(tw, "Basic Info inserted");

                logHelper.logLine(tw, "Starting operation 'Genres'");

                #region types
                if (MovieTypeBL.GetAllByMovieID(movie.ID).Count() < 1)
                {
                    try {
                        if (imdbInfo.genres != null)
                        {
                            foreach (string item in imdbInfo.genres)
                            {
                                if (allTypes.ContainsKey(item))
                                {
                                    MovieTypeBL.Save(new MovieTypeDO( )
                                    {
                                        MovieID = movie.ID, TypeID = allTypes[item]
                                    }, 1);
                                }
                                else
                                {
                                    int currentID = TypeBL.Save(new MArchive.Domain.Lookup.TypeDO( )
                                    {
                                        Name = item
                                    }, 1).ID;
                                    //MovieTypeBL.Save( movie.ID, item, 1 );
                                    MovieTypeBL.Save(new MovieTypeDO( )
                                    {
                                        MovieID = movie.ID, TypeID = currentID
                                    }, 1);
                                    allTypes.Add(item, currentID);
                                }
                            }
                        }
                        logHelper.logLine(tw, "Genres inserted");
                    } catch (Exception ex) {
                        logHelper.logLine(tw, "Genres could not be inserted.");
                        logHelper.logException(tw, ex);
                        logHelper.logLine(tw);
                    }
                }
                #endregion types

                logHelper.logLine(tw, "Starting operation 'Actors'");

                #region actors
                if (MovieActorBL.GetAllByMovieID(movie.ID).Count( ) < 1)
                {
                    try {
                        if (imdbInfo.cast != null)
                        {
                            foreach (string item in imdbInfo.cast)
                            {
                                if (allActors.ContainsKey(item))
                                {
                                    MovieActorBL.Save(new MovieActorDO( )
                                    {
                                        MovieID = movie.ID, ActorID = allActors[item]
                                    }, 1);
                                }
                                else
                                {
                                    int currentID = ActorBL.Save(new MArchive.Domain.Lookup.ActorDO( )
                                    {
                                        Name = item
                                    }, 1).ID;
                                    MovieActorBL.Save(new MovieActorDO( )
                                    {
                                        MovieID = movie.ID, ActorID = currentID
                                    }, 1);
                                    allActors.Add(item, currentID);
                                }
                            }
                        }
                        logHelper.logLine(tw, "Actors inserted");
                    } catch (Exception ex) {
                        logHelper.logLine(tw, "Actors could not be inserted.");
                        logHelper.logException(tw, ex);
                        logHelper.logLine(tw);
                    }
                }
                #endregion actors

                logHelper.logLine(tw, "Starting operation 'Languages'");

                #region languages
                if (MovieLanguageBL.GetAllByMovieID(movie.ID).Count( ) < 1)
                {
                    try {
                        if (imdbInfo.languages != null)
                        {
                            foreach (string item in imdbInfo.languages)
                            {
                                if (allLanguages.ContainsKey(item))
                                {
                                    MovieLanguageBL.Save(new MovieLanguageDO( )
                                    {
                                        MovieID = movie.ID, LanguageID = allLanguages[item]
                                    }, 1);
                                }
                                else
                                {
                                    int currentID = LanguageBL.Save(new MArchive.Domain.Lookup.LanguageDO( )
                                    {
                                        Name = item
                                    }, 1).ID;
                                    MovieLanguageBL.Save(new MovieLanguageDO( )
                                    {
                                        MovieID = movie.ID, LanguageID = currentID
                                    }, 1);
                                    allLanguages.Add(item, currentID);
                                }
                            }
                        }
                        logHelper.logLine(tw, "Languages inserted");
                    } catch (Exception ex) {
                        logHelper.logLine(tw, "Languages could not be inserted.");
                        logHelper.logException(tw, ex);
                        logHelper.logLine(tw);
                    }
                }
                #endregion languages

                logHelper.logLine(tw, "Starting operation 'Directors'");

                #region directors
                if (MovieDirectorBL.GetAllByMovieID(movie.ID).Count( ) < 1)
                {
                    try {
                        if (imdbInfo.directors != null)
                        {
                            foreach (string item in imdbInfo.directors)
                            {
                                if (allDirectors.ContainsKey(item))
                                {
                                    MovieDirectorBL.Save(new MovieDirectorDO( )
                                    {
                                        MovieID = movie.ID, DirectorID = allDirectors[item]
                                    }, 1);
                                }
                                else
                                {
                                    int currentID = DirectorBL.Save(new MArchive.Domain.Lookup.DirectorDO( )
                                    {
                                        Name = item
                                    }, 1).ID;
                                    MovieDirectorBL.Save(new MovieDirectorDO( )
                                    {
                                        MovieID = movie.ID, DirectorID = currentID
                                    }, 1);
                                    allDirectors.Add(item, currentID);
                                }
                            }
                        }
                        logHelper.logLine(tw, "Directors inserted");
                    } catch (Exception ex) {
                        logHelper.logLine(tw, "Directors could not be inserted.");
                        logHelper.logException(tw, ex);
                        logHelper.logLine(tw);
                    }
                }
                #endregion directors

                logHelper.logLine(tw, "Starting operation 'Writers'");

                #region writers
                if (MovieWriterBL.GetAllByMovieID(movie.ID).Count( ) < 1)
                {
                    try {
                        if (imdbInfo.writers != null)
                        {
                            foreach (string item in imdbInfo.writers)
                            {
                                if (allWriters.ContainsKey(item))
                                {
                                    MovieWriterBL.Save(new MovieWriterDO( )
                                    {
                                        MovieID = movie.ID, WriterID = allWriters[item]
                                    }, 1);
                                }
                                else
                                {
                                    int currentID = WriterBL.Save(new MArchive.Domain.Lookup.WriterDO( )
                                    {
                                        Name = item
                                    }, 1).ID;
                                    MovieWriterBL.Save(new MovieWriterDO( )
                                    {
                                        MovieID = movie.ID, WriterID = currentID
                                    }, 1);
                                    allWriters.Add(item, currentID);
                                }
                            }
                        }
                        logHelper.logLine(tw, "Writers inserted");
                    } catch (Exception ex) {
                        logHelper.logLine(tw, "Writers could not be inserted.");
                        logHelper.logException(tw, ex);
                        logHelper.logLine(tw);
                    }
                }
                #endregion writers

                logHelper.logLine(tw, "Updating 'movie' table");

                movie.ImdbParsed        = true;
                movie.ImdbLastParseDate = movie.UpdateDate = DateTime.Now;

                MovieBL.Save(movie, 1);

                logHelper.logLine(tw, "Table update successful");
            } catch (Exception ex) { logHelper.logException(tw, ex); }
        }