⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sitestatistics.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
📖 第 1 页 / 共 2 页
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.Web;
using System.Web.Caching;
using System.Collections;
using System.Xml;

namespace CommunityServer.Components {

    // *********************************************************************
    //  Statistics
    //
    /// <summary>
    /// This class contains is used to get statistics about the running ASP.NET Forum
    /// </summary>
    // ***********************************************************************/
    public class SiteStatistics {
        int currentAnonymousUsers;
        ArrayList activeUsers = new ArrayList();
        ArrayList activeModerators = new ArrayList();
        ArrayList moderationActions = new ArrayList();

        int totalUsers;
        int totalPosts;
        int totalThreads;
        int totalModerators;
        int totalModeratedPosts;
        int totalAnonymousUsers;
        int newPostsInPast24Hours;
        int newThreadsInPast24Hours;
        int newUsersInPast24Hours;
        int mostViewsPostId;
        string mostViewsSubject			= "";
        int mostActivePostId;
        string mostActiveSubject		= "";
        int mostReadPostId;
        string mostReadPostSubject		= "";
        string mostActiveUser			= "";
        int mostActiveUserID;
        string newestUser				= "";
        int newestUserID;
        static Version version;

		public static void CalculateSiteStatistics(int cacheTimeInHours)
		{
			Hashtable sites = SiteSettingsManager.GetActiveSiteSettings();
			SiteSettings site = null;
			CommonDataProvider dp = CommonDataProvider.Instance();
			foreach(string key in sites.Keys)
			{
				site = sites[key] as SiteSettings;
				if(site != null)
					dp.CalculateSiteStatistics(site.SettingsID,cacheTimeInHours);
			}
		}

//        /// <summary>
//        /// Loads all of the Available site settigns into the cache.
//        /// </summary>
//        /// <param name="cacheTimeInHours"></param>
//        public static void LoadSiteStatistics(int cacheTimeInHours)
//        {
//            
//            Hashtable ht = new Hashtable();
//
//            Hashtable sites = SiteSettingsManager.GetActiveSiteSettings();
//            SiteSettings site = null;
//            CommonDataProvider dp = CommonDataProvider.Instance();
//            foreach(string key in sites.Keys)
//            {
//                site = sites[key] as SiteSettings;
//                if(site != null)
//                    ht[site.SettingsID] = dp.LoadSiteStatistics(site.SettingsID,cacheTimeInHours);
//            }
//
//            //over write the existing cached items
//            CSCache.Insert("SiteStatistics",ht,10*CSCache.MinuteFactor);
//           
//        }

//        public static SiteStatistics LoadSiteStatistics(HttpContext context, bool cacheable, int cacheTimeInHours) 
//        {
//            return LoadSiteStatistics(SiteSettingsManager.GetSiteSettings(context).SettingsID,cacheable,cacheTimeInHours);
//        }

        public static SiteStatistics LoadSiteStatistics(int settingsID, bool cacheable, int cacheTimeInHours) {
#if DEBUG_NOCACHE
            cacheable = false;
#endif

            // Cached lookup
            //
            Hashtable ht = CSCache.Get("SiteStatistics") as Hashtable;
            if(ht == null)
            {
                ht = new Hashtable();
                CSCache.Insert("SiteStatistics",ht,10*CSCache.MinuteFactor);
            }

            SiteStatistics stats = ht[settingsID] as SiteStatistics;
            if ( stats == null) {

				lock(ht.SyncRoot)
				{
					CommonDataProvider dp = CommonDataProvider.Instance();
					stats = dp.LoadSiteStatistics(settingsID);
					if (cacheable)
						ht[settingsID] = stats;
				}
            } 

            return stats;

        }

		public static string CommunityServerVersionVersionInfo
		{
			get{ return string.Format("CommunityServer 1.1 (Build: {0})", CommunityServerVersion);}
		}

        public static Version CommunityServerVersion {
            get {
                if (version == null) {
                    Type t = Type.GetType("CommunityServer.Components.CommonDataProvider");
                    version = t.Assembly.GetName().Version;
                }

                return version;
            }
        }

        public static bool NewVersionAvailable (Version versionToCompare) {

            string[] runningVersion = SiteStatistics.CommunityServerVersion.ToString(3).Split('.');
            string[] compareVersion = versionToCompare.ToString(3).Split('.');

            if (( int.Parse(compareVersion[0]) > int.Parse(runningVersion[0]) ) ||
                ( 
					int.Parse(compareVersion[0]) == int.Parse(runningVersion[0]) &&
					int.Parse(compareVersion[1]) > int.Parse(runningVersion[1]) ) ||
				( 
					int.Parse(compareVersion[0]) == int.Parse(runningVersion[0]) &&
					int.Parse(compareVersion[1]) == int.Parse(runningVersion[1]) &&
					int.Parse(compareVersion[2]) > int.Parse(runningVersion[2]) ) )
                return true;

            return false;

        }

        public static bool RunningModedVersion (Version versionToCompare) {

            string[] runningVersion = SiteStatistics.CommunityServerVersion.ToString(3).Split('.');
            string[] compareVersion = versionToCompare.ToString(3).Split('.');


            if (!NewVersionAvailable(versionToCompare)) {
                if ( int.Parse(compareVersion[2]) < int.Parse(runningVersion[2]) )
                    return true;
            }

            return false;

        }

        public ArrayList ActiveUsers {
            get { return activeUsers; }
            set { activeUsers = value; }
        }

        public ArrayList ActiveModerators {
            get { return activeModerators; }
            set { activeModerators = value; }
        }

        public ArrayList ModerationActions {
            get { return moderationActions; }
            set { moderationActions = value; }
        }

        public int CurrentAnonymousUsers {
            get { return currentAnonymousUsers; }
            set { currentAnonymousUsers = value; }
        }

        public int TotalUsers {
            get { return totalUsers; }
            set {
                if (value < 0)
                    totalUsers = 0;
                else
                    totalUsers = value;
            }
        }

        public int TotalAnonymousUsers {
            get { return totalAnonymousUsers; }
            set { totalAnonymousUsers = value; }
        }

        public int TotalModerators {
            get { return totalModerators; }
            set {
                if (value < 0)
                    totalModerators = 0;
                else
                    totalModerators = value;
            }
        }

        public int TotalModeratedPosts {
            get { return totalModeratedPosts; }
            set {
                if (value < 0)
                    totalModeratedPosts = 0;
                else
                    totalModeratedPosts = value;
            }
        }

		public double AverageModeratedPostsPerModerator {
			get {
				return (double) totalModeratedPosts / (double) totalModerators;
			}
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -