Inheritance: ActingPerson
 void calculateNumbers(SessionBase session)
 {
   ImdbRoot imdbRoot = (ImdbRoot)session.Open(session.DatabaseNumberOf(typeof(ImdbRoot)), 2, 1, false);
   ActingPerson kevin = new Actor("Bacon, Kevin (I)", session);
   if (!imdbRoot.ActingByNameSet.TryGetKey(kevin, ref kevin))
     Console.WriteLine("Couldn't find actor Kevin Bacon!");
   else
   {
     unchasedMovie = kevin.InMovieAs.ToList<Movie>();
     resultArray[bacon]++; // Kevin Bacon himself       
     while (unchasedMovie.Count > 0)
     {
       bacon++;
       processsMovies(session);
       foreach (ActingPerson acting in unchasedPerson)
       {
         foreach (Movie movie in (IEnumerable<Movie>)acting.InMovieAs)
           if (chasedMovie.Contains(movie.ShortId) == false)
             unchasedMovie.Add(movie);
       }
     }
   }
 }
示例#2
0
 void ParseActors(SessionBase session, ImdbRoot imdbRoot)
 {
   using (FileStream stream = File.OpenRead(System.IO.Path.Combine(imdbTextFilesDir, "actors.list.gz")))
   {
     using (GZipStream decompress = new GZipStream(stream, CompressionMode.Decompress))
     {
       using (System.IO.StreamReader file = new System.IO.StreamReader(decompress))
       {
         string line;
         int lineNumber = 0;
         while ((line = file.ReadLine()) != null)
         { // skip all the intro stuff
           lineNumber++;
           if (line.Length > 5 && line[0] == '-' && line[5] == '\t')
             break;
         }
         while ((line = file.ReadLine()) != null)
         {
           lineNumber++;
           string actorName = new string(line.TakeWhile(aChar => aChar != '\t').ToArray<char>()); // end of name
           if (line.Length > 10 && line[0] == '-' && line[1] == '-' && line[2] == '-' && line[3] == '-')
             break; // signals end of input
           line = line.Substring(actorName.Length + 1);
           Actor actor = new Actor(actorName, session);
           session.Persist(actor);
           imdbRoot.ActorSet.Add(actor);
           parseMovie(session, line, imdbRoot, actor);
           while ((line = file.ReadLine()) != null)
           {
             if (line.Length == 0)
               break;
             lineNumber++;
             parseMovie(session, line, imdbRoot, actor);
           }
         }
       }
     }
   }
 }