예제 #1
0
        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++;
            }
        }
예제 #2
0
        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;
        }