示例#1
0
        /// <summary>
        /// 得到玩家数量信息
        /// </summary>
        PlayerCountStatisticInfo[] GetPlayerCountInfo(DateTime startTime, DateTime endTime)
        {
            using (IBlazeDatabase db = DbFactory.GetDatabase())
            {
                IBlazeTable table = db.GetTable(TableString.PlayerCountTableName);
                DataSet     ds    = new DataSet();
                table.Get(ds,
                          FilterFactory.CreateAndFilter(
                              FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id),
                              FilterFactory.CreateAndFilter(
                                  FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime),
                                  FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime)
                                  )
                              )
                          );

                DataTable dt       = ds.Tables[TableString.PlayerCountTableName];
                int       rowCount = dt.Rows.Count;
                PlayerCountStatisticInfo[] infos = new PlayerCountStatisticInfo[rowCount];
                for (int i = 0; i < rowCount; i++)
                {
                    DataRow row = dt.Rows[i];
                    PlayerCountStatisticInfo info = new PlayerCountStatisticInfo();
                    info.Time         = (DateTime)row[TableString.PlayerCountFieldRecordTime];
                    info.MaxCount     = (int)row[TableString.PlayerCountFieldMaxPlayerCount];
                    info.MinCount     = (int)row[TableString.PlayerCountFieldMinPlayerCount];
                    info.AverageCount = (int)row[TableString.PlayerCountFieldAveragePlayerCount];
                    infos[i]          = info;
                }

                return(infos);
            }
        }
示例#2
0
        /// <summary>
        /// 添加玩家数量信息
        /// </summary>
        void AddPlayerCountInfo(PlayerCountStatisticInfo info)
        {
            if (info == null)
            {
                throw new ArgumentNullException("info");
            }

            using (IBlazeDatabase db = DbFactory.GetDatabase())
            {
                IBlazeTable table      = db.GetTable(TableString.PlayerCountTableName);
                string[]    fieldNames =
                {
                    TableString.PlayerCountFieldServerId,
                    TableString.PlayerCountFieldRecordTime,
                    TableString.PlayerCountFieldMaxPlayerCount,
                    TableString.PlayerCountFieldMinPlayerCount,
                    TableString.PlayerCountFieldAveragePlayerCount
                };
                object[] fieldValues =
                {
                    _server.Id,
                    info.Time,
                    info.MaxCount,
                    info.MinCount,
                    info.AverageCount
                };
                table.Add(fieldNames, fieldValues);
            }
        }
示例#3
0
        /// <summary>
        /// 获取某日的最大人数
        /// </summary>
        /// <param name="day"></param>
        /// <returns></returns>
        int GetDayMaxPlayer(DateTime day)
        {
            DateTime startTime = DateTime.Parse(day.ToShortDateString() + " 00:00:00");
            DateTime endTime   = DateTime.Parse(day.ToShortDateString() + " 23:59:59");
            int      maxPlayer = 0;
            int      rowMax    = 0;

            using (IBlazeDatabase db = DbFactory.GetDatabase())
            {
                IBlazeTable table = db.GetTable(TableString.PlayerCountTableName);
                DataSet     ds    = new DataSet();
                table.Get(ds,
                          FilterFactory.CreateAndFilter(
                              FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id),
                              FilterFactory.CreateAndFilter(
                                  FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime),
                                  FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime)
                                  )
                              )
                          );

                DataTable dt = ds.Tables[TableString.PlayerCountTableName];

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow row = dt.Rows[i];
                    PlayerCountStatisticInfo info = new PlayerCountStatisticInfo();

                    rowMax = (int)row[TableString.PlayerCountFieldMaxPlayerCount];
                    if (maxPlayer < rowMax)
                    {
                        maxPlayer = rowMax;
                    }
                }

                return(maxPlayer);
            }
        }
示例#4
0
        void DoPlayerCountStatistic(DateTime now)
        {
            PlayerCountStatisticInfo statisticInfo = new PlayerCountStatisticInfo();

            if (_playerCountQueue.Count > 0)
            {
                foreach (PlayerCountInfo info in _playerCountQueue)
                {
                    if (info.Count > statisticInfo.MaxCount)
                    {
                        statisticInfo.MaxCount = info.Count;
                    }
                    if (info.Count < statisticInfo.MinCount)
                    {
                        statisticInfo.MinCount = info.Count;
                    }
                    statisticInfo.AverageCount += info.Count;
                }
                statisticInfo.AverageCount /= _playerCountQueue.Count;
            }
            statisticInfo.Time = now;
            AddPlayerCountInfo(statisticInfo);
            _lastPlayerCountStatisticHour = now.Hour;
        }
示例#5
0
        /// <summary>
        /// 获取某日的最大人数
        /// </summary>
        /// <param name="day"></param>
        /// <returns></returns>
        int GetDayMaxPlayer(DateTime day)
        {
            DateTime startTime = DateTime.Parse(day.ToShortDateString() + " 00:00:00");
            DateTime endTime = DateTime.Parse(day.ToShortDateString() + " 23:59:59");
            int maxPlayer = 0;
            int rowMax = 0;
            using (IBlazeDatabase db = DbFactory.GetDatabase())
            {
                IBlazeTable table = db.GetTable(TableString.PlayerCountTableName);
                DataSet ds = new DataSet();
                table.Get(ds,
                    FilterFactory.CreateAndFilter(
                        FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id),
                        FilterFactory.CreateAndFilter(
                            FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime),
                            FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime)
                            )
                        )
                    );

                DataTable dt = ds.Tables[TableString.PlayerCountTableName];
  
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow row = dt.Rows[i];
                    PlayerCountStatisticInfo info = new PlayerCountStatisticInfo();

                    rowMax = (int)row[TableString.PlayerCountFieldMaxPlayerCount];
                    if (maxPlayer < rowMax) maxPlayer = rowMax;
                }

                return maxPlayer ;
            }
        }
示例#6
0
		/// <summary>
		/// 得到玩家数量信息
		/// </summary>
		PlayerCountStatisticInfo[] GetPlayerCountInfo(DateTime startTime, DateTime endTime)
		{
			using (IBlazeDatabase db = DbFactory.GetDatabase())
			{
				IBlazeTable table = db.GetTable(TableString.PlayerCountTableName);
				DataSet ds = new DataSet();
				table.Get(ds,
					FilterFactory.CreateAndFilter(
						FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id),
						FilterFactory.CreateAndFilter(
							FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime),
							FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime)
							)
						)
					);

				DataTable dt = ds.Tables[TableString.PlayerCountTableName];
				int rowCount = dt.Rows.Count;
				PlayerCountStatisticInfo[] infos = new PlayerCountStatisticInfo[rowCount];
				for (int i = 0; i < rowCount; i++)
				{
					DataRow row = dt.Rows[i];
					PlayerCountStatisticInfo info = new PlayerCountStatisticInfo();
					info.Time = (DateTime)row[TableString.PlayerCountFieldRecordTime];
					info.MaxCount = (int)row[TableString.PlayerCountFieldMaxPlayerCount];
					info.MinCount = (int)row[TableString.PlayerCountFieldMinPlayerCount];
					info.AverageCount = (int)row[TableString.PlayerCountFieldAveragePlayerCount];
					infos[i] = info;
				}

				return infos;
			}
		}
示例#7
0
		/// <summary>
		/// 添加玩家数量信息
		/// </summary>
		void AddPlayerCountInfo(PlayerCountStatisticInfo info)
		{
			if (info == null)
				throw new ArgumentNullException("info");

			using (IBlazeDatabase db = DbFactory.GetDatabase())
			{
				IBlazeTable table = db.GetTable(TableString.PlayerCountTableName);
				string[] fieldNames = {
					TableString.PlayerCountFieldServerId,
					TableString.PlayerCountFieldRecordTime,
					TableString.PlayerCountFieldMaxPlayerCount,
					TableString.PlayerCountFieldMinPlayerCount,
					TableString.PlayerCountFieldAveragePlayerCount
				};
				object[] fieldValues = {
					_server.Id,
					info.Time,
					info.MaxCount,
					info.MinCount,
					info.AverageCount
				};
				table.Add(fieldNames, fieldValues);
			}
		}
示例#8
0
		void DoPlayerCountStatistic(DateTime now)
		{
			PlayerCountStatisticInfo statisticInfo = new PlayerCountStatisticInfo();
			if (_playerCountQueue.Count > 0)
			{
				foreach (PlayerCountInfo info in _playerCountQueue)
				{
					if (info.Count > statisticInfo.MaxCount)
						statisticInfo.MaxCount = info.Count;
					if (info.Count < statisticInfo.MinCount)
						statisticInfo.MinCount = info.Count;
					statisticInfo.AverageCount += info.Count;
				}
				statisticInfo.AverageCount /= _playerCountQueue.Count;
			}
			statisticInfo.Time = now;
			AddPlayerCountInfo(statisticInfo);
			_lastPlayerCountStatisticHour = now.Hour;
		}