public imdbInfoForm(ImdbModel imdbInfo, object senderF, string senderN) { InitializeComponent( ); iinfo = imdbInfo; senderForm = senderF; senderName = senderN; }
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( ); } }
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); }
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( ); }
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); } }