internal Category(string name, ICollection<string> rssUris) { this.name = name; articleBundleHolder = new ArticleBundleHolder(Settings.CategoryMaxNumArticleBundles); blogs = new Blog[rssUris.Count]; Log.WriteLine("カテゴリ[" + name + "]の初期化", true); int i = 0; foreach (string rssUri in rssUris) { Log.WriteLine("RSS[" + rssUri + "]を取得", false); blogs[i] = new Blog(this, rssUri); if (blogs[i].Title != null) { Log.WriteLine("ブログ[" + blogs[i].Title + "]を検出", false); if (DateTime.Now - blogs[i].NewestArticle.Date >= TimeSpan.FromDays(30)) { int m = (int)((DateTime.Now - blogs[i].NewestArticle.Date).TotalDays / 30); Log.WriteLine("(警告)ブログ[" + blogs[i].Title + "]は" + m + "ヵ月以上更新されていない", false); } } i++; } }
private static IList<Blog> GetRandomizedBlogList(ICollection<Category> categories) { int length = 0; foreach (Category category in categories) { length += category.Blogs.Count; } Blog[] blogs = new Blog[length]; { int i = 0; foreach (Category category in categories) { foreach (Blog blog in category.Blogs) { blogs[i] = blog; i++; } } } for (int i = 0; i < blogs.Length; i++) { int j = random.Next(i, blogs.Length); Blog temp = blogs[i]; blogs[i] = blogs[j]; blogs[j] = temp; } return blogs; }