/// <summary> /// Get stats info /// </summary> /// <returns>Stats counters</returns> public Stats Get() { if (!Security.IsAuthorizedTo(BlogEngine.Core.Rights.AccessAdminPages)) throw new System.UnauthorizedAccessException(); var stats = new Stats(); var postList = Post.ApplicablePosts.Where(p => p.IsVisible).ToList(); if (!Security.IsAuthorizedTo(Rights.EditOtherUsersPosts)) postList = postList.Where(p => p.Author.ToLower() == Security.CurrentUser.Identity.Name.ToLower()).ToList(); stats.PublishedPostsCount = postList.Where(p => p.IsPublished == true).Count(); stats.DraftPostsCount = postList.Where(p => p.IsPublished == false).Count(); stats.PublishedPagesCount = Page.Pages.Where(p => p.IsPublished == true && p.IsDeleted == false).Count(); stats.DraftPagesCount = Page.Pages.Where(p => p.IsPublished == false && p.IsDeleted == false).Count(); CountComments(stats); stats.CategoriesCount = Category.Categories.Count; stats.TagsCount = 2; stats.UsersCount = 3; Subscribers(stats); return stats; }
void Subscribers(Stats stats) { if (!Security.IsAuthorizedTo(BlogEngine.Core.Rights.AccessAdminPages)) throw new System.UnauthorizedAccessException(); string filename = System.IO.Path.Combine(Blog.CurrentInstance.StorageLocation, "newsletter.xml"); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(System.Web.Hosting.HostingEnvironment.MapPath(filename)); System.Xml.XmlNodeList list = doc.GetElementsByTagName("email"); stats.SubscribersCount += (list.Count).ToString(); }
void CountComments(Stats stats) { foreach (var post in Post.Posts) { if (!Security.IsAuthorizedTo(BlogEngine.Core.Rights.EditOtherUsersPosts)) if (post.Author.ToLower() != Security.CurrentUser.Identity.Name.ToLower()) continue; stats.PublishedCommentsCount += post.Comments.Where(c => c.IsPublished == true && c.IsDeleted == false).Count(); stats.UnapprovedCommentsCount += post.Comments.Where(c => c.IsPublished == false && c.IsSpam == false && c.IsDeleted == false).Count(); stats.SpamCommentsCount += post.Comments.Where(c => c.IsPublished == false && c.IsSpam == true && c.IsDeleted == false).Count(); } }
/// <summary> /// Get stats info /// </summary> /// <returns>Stats counters</returns> public Stats Get() { var stats = new Stats(); var postList = Post.ApplicablePosts.Where(p => p.IsVisible).ToList(); if (!Security.IsAuthorizedTo(Rights.EditOtherUsersPosts)) postList = postList.Where(p => p.Author.ToLower() == Security.CurrentUser.Identity.Name.ToLower()).ToList(); if (Security.IsAdministrator || Security.IsChief) { stats.PublishedPostsCount = postList.Where(p => p.IsPublished == true).Count(); stats.DraftPostsCount = postList.Where(p => p.IsPublished == false).Count(); stats.PublishedPagesCount = Page.Pages.Where(p => p.IsPublished == true && p.IsDeleted == false).Count(); stats.DraftPagesCount = Page.Pages.Where(p => p.IsPublished == false && p.IsDeleted == false).Count(); stats.UsersCount = 3; } else { stats.PublishedPostsCount = postList.Where(p => p.IsPublished == true && p.Author.ToLower() == Security.CurrentUser.Identity.Name.ToLower()).Count(); stats.DraftPostsCount = postList.Where(p => p.IsPublished == false && p.Author.ToLower() == Security.CurrentUser.Identity.Name.ToLower()).Count(); stats.PublishedPagesCount = 0; stats.DraftPagesCount = 0; stats.UsersCount = 0; } CountComments(stats); stats.CategoriesCount = Category.Categories.Count; stats.TagsCount = 2; return stats; }