コード例 #1
0
        static int Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("SQL Server connection string required as first parameter");
                return(1);
            }

            ILookup <int, AnimeRelation> relationMap = null;
            IDictionary <int, string>    titleMap    = null;
            IEnumerable <int>            animeIds    = null;

            try
            {
                using (SqlConnection con = new SqlConnection(args[0]))
                {
                    con.Open();
                    relationMap = LoadRelations(con);
                    titleMap    = LoadMainTitles(con);

                    // [Un]comment out either of the two below lines based on if you want to test
                    // only JMM series, or all AniDB anime that JMM knows about
                    //animeIds = LoadAllAniDBAnimeIds(con);
                    animeIds = LoadAnimeIdsFromSeries(con);
                }

                var autoGrpCalc = new AutoAnimeGroupCalculator(relationMap, mainAnimeSelectionStrategy: MainAnimeSelectionStrategy.MinAirDate);

                var results = animeIds.Select(id => new { AnimeId = id, GroupId = autoGrpCalc.GetGroupAnimeId(id) })
                              .ToLookup(a => titleMap[a.GroupId], a => "[" + a.AnimeId + "] " + titleMap[a.AnimeId])
                              .OrderBy(g => g.Key, StringComparer.CurrentCultureIgnoreCase);

                foreach (var result in results)
                {
                    Console.WriteLine(result.Key);

                    foreach (string anime in result)
                    {
                        Console.WriteLine("\t" + anime);
                    }

                    Console.WriteLine();
                }
            }
            catch (Exception e)
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine(e);
                Console.ResetColor();
            }

            return(0);
        }