Exemple #1
0
		protected string Number(int DateSpan, int StatType)
		{
			TimeSpan ts = DateTime.Today.Subtract(new DateTime(1970, 1, 1));
			int dayIndexNow = ts.Days;
			//return dayIndexNow.ToString();
			int dayMin = dayIndexNow;
			int dayMax = dayIndexNow;
			DateTime dateMin = DateTime.Today;
			DateTime dateMax = DateTime.Today.AddDays(1);
			bool estimateWholeDay = false;
			if (DateSpan == 10)
				estimateWholeDay = true;
			else if (DateSpan == 1)
			{
				dayMin = dayIndexNow - 1;
				dayMax = dayIndexNow - 1;
				dateMin = DateTime.Today.AddDays(-1);
				dateMax = DateTime.Today;
			}
			else if (DateSpan == 2)
			{
				dayMin = dayIndexNow - 7;
				dayMax = dayIndexNow - 1;
				dateMin = DateTime.Today.AddDays(-7);
				dateMax = DateTime.Today;
			}
			else if (DateSpan == 3)
			{
				dayMin = dayIndexNow - 30;
				dayMax = dayIndexNow - 1;
				dateMin = DateTime.Today.AddMonths(-1);
				dateMax = DateTime.Today;
			}
			else if (DateSpan == 4)
			{
				dayMin = dayIndexNow - 365;
				dayMax = dayIndexNow - 1;
				dateMin = DateTime.Today.AddDays(-365);
				dateMax = DateTime.Today;
			}
			else if (DateSpan == 5)
			{
				dayMin = 0;
				dayMax = dayIndexNow;
				dateMin = new DateTime(2000, 1, 1);
				dateMax = new DateTime(3000, 1, 1);
			}
			else if (DateSpan == 15)
			{
				dayMin = 0;
				dayMax = dayIndexNow;
				dateMin = DateTime.Now.AddMinutes(-5);
				dateMax = DateTime.Now;
			}
			else if (DateSpan == 130)
			{
				dayMin = 0;
				dayMax = dayIndexNow;
				dateMin = DateTime.Now.AddMinutes(-30);
				dateMax = DateTime.Now;
			}

			int number = 0;


			if (StatType == 1) // Uniques
			{
				Query q = new Query();
				q.NoLock = true;
				q.Columns = new ColumnSet();
				q.ExtraSelectElements["count"] = "count(distinct Guid)";
				q.QueryCondition = new And(
					new Or(new Q(Visit.Columns.DateTimeStart, QueryOperator.GreaterThanOrEqualTo, dateMin), new Q(Visit.Columns.DateTimeLast, QueryOperator.GreaterThanOrEqualTo, dateMin)),
					new Or(new Q(Visit.Columns.DateTimeStart, QueryOperator.LessThan, dateMax), new Q(Visit.Columns.DateTimeLast, QueryOperator.LessThan, dateMax)),
					new Or(new Q(Visit.Columns.Pages, QueryOperator.GreaterThan, 1), new Q(Visit.Columns.IsNewGuid, false))
					);

				VisitSet vs = new VisitSet(q);

				number = (int)vs[0].ExtraSelectElements["count"];
			}
			else if (StatType == 2) //Pages
			{
				Query q = new Query();
				q.NoLock = true;
				q.Columns = new ColumnSet();
				q.ExtraSelectElements["sum"] = "sum(Count)";
				q.QueryCondition = new And(
					new Q(Log.Columns.Date, QueryOperator.GreaterThanOrEqualTo, dateMin),
					new Q(Log.Columns.Date, QueryOperator.LessThan, dateMax),
					new Q(Log.Columns.Item, Log.Items.DsiPages)
					);

				LogSet ls = new LogSet(q);

				number = (int)ls[0].ExtraSelectElements["sum"];
			}
			else if (StatType == 4) //Photos
			{
				if (DateSpan == 5)
				{
					Query q = new Query();
					q.NoLock = true;
					q.OrderBy = new OrderBy(Photo.Columns.K, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Photo.Columns.K);
					q.TopRecords = 1;
					PhotoSet ps = new PhotoSet(q);
					number = ps[0].K;
				}
				else
				{
					Query q = new Query();
					q.NoLock = true;
					q.QueryCondition = new And(
						Photo.EnabledQueryCondition,
						new Q(Photo.Columns.EnabledDateTime, QueryOperator.GreaterThanOrEqualTo, dateMin),
						new Q(Photo.Columns.EnabledDateTime, QueryOperator.LessThan, dateMax)
						);
					q.ReturnCountOnly = true;
					PhotoSet ps = new PhotoSet(q);
					number = ps.Count;
				}
			}
			else if (StatType == 5) //Events
			{
				if (DateSpan == 5)
				{
					Query q = new Query();
					q.NoLock = true;
					q.OrderBy = new OrderBy(Event.Columns.K, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Event.Columns.K);
					q.TopRecords = 1;
					EventSet es = new EventSet(q);
					number = es[0].K;
				}
				else
				{
					Query q = new Query();
					q.NoLock = true;
					q.QueryCondition = new And(
						new Q(Event.Columns.AddedDateTime, QueryOperator.GreaterThanOrEqualTo, dateMin),
						new Q(Event.Columns.AddedDateTime, QueryOperator.LessThan, dateMax)
						);
					q.ReturnCountOnly = true;
					EventSet es = new EventSet(q);
					number = es.Count;
				}
			}
			else if (StatType == 6) //New users
			{
				if (DateSpan == 5)
				{
					Query q = new Query();
					q.NoLock = true;
					q.OrderBy = new OrderBy(Usr.Columns.K, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Usr.Columns.K);
					q.TopRecords = 1;
					UsrSet us = new UsrSet(q);
					number = us[0].K;
				}
				else
				{
					Query q = new Query();
					q.NoLock = true;
					q.QueryCondition = new And(
						new Q(Usr.Columns.DateTimeSignUp, QueryOperator.GreaterThanOrEqualTo, dateMin),
						new Q(Usr.Columns.DateTimeSignUp, QueryOperator.LessThan, dateMax)
						);
					q.ReturnCountOnly = true;
					UsrSet us = new UsrSet(q);
					number = us.Count;
				}
			}
			else if (StatType == 7) //Users logged on
			{
				if (DateSpan == 5)
				{
					Query q = new Query();
					q.NoLock = true;
					q.QueryCondition = Usr.IsNotSkeletonQ;
					q.ReturnCountOnly = true;
					UsrSet us = new UsrSet(q);
					number = us.Count;
				}
				else
				{
					Query q = new Query();
					q.NoLock = true;
					if (DateSpan == 1)
					{
						q.QueryCondition = new Q(Usr.Columns.DateTimeLastPageRequest, QueryOperator.GreaterThanOrEqualTo, DateTime.Now.AddDays(-1));
					}
					else
					{
						q.QueryCondition = new And(
							new Q(Usr.Columns.DateTimeLastPageRequest, QueryOperator.GreaterThanOrEqualTo, dateMin),
							new Q(Usr.Columns.DateTimeLastPageRequest, QueryOperator.LessThan, dateMax)
							);
					}
					q.QueryCondition = new And(Usr.IsNotSkeletonQ, q.QueryCondition);
					q.ReturnCountOnly = true;
					UsrSet us = new UsrSet(q);
					number = us.Count;
				}
			}
			else if (StatType == 8) //Comments
			{
				if (DateSpan == 5)
				{
					Query q = new Query();
					q.NoLock = true;
					q.OrderBy = new OrderBy(Comment.Columns.K, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Comment.Columns.K);
					q.TopRecords = 1;
					CommentSet cs = new CommentSet(q);
					number = cs[0].K;
				}
				else
				{
					Query q = new Query();
					q.NoLock = true;
					q.QueryCondition = new And(
						new Q(Comment.Columns.DateTime, QueryOperator.GreaterThanOrEqualTo, dateMin),
						new Q(Comment.Columns.DateTime, QueryOperator.LessThan, dateMax)
						);
					q.ReturnCountOnly = true;
					CommentSet cs = new CommentSet(q);
					number = cs.Count;
				}
			}
			else if (StatType == 9) //PMs
			{
				Query q = new Query();
				q.NoLock = true;
				q.QueryCondition = new And(
					new Q(Comment.Columns.DateTime, QueryOperator.GreaterThanOrEqualTo, dateMin),
					new Q(Comment.Columns.DateTime, QueryOperator.LessThan, dateMax),
					new Q(Thread.Columns.Private, true),
					new Q(Comment.Columns.UsrK, QueryOperator.NotEqualTo, 7646)
					);
				q.TableElement = Comment.ThreadJoin;
				q.ReturnCountOnly = true;
				CommentSet cs = new CommentSet(q);
				number = cs.Count;
			}
			else if (StatType == 10) //Chat massages
			{
				if (DateSpan == 5)
				{
					Query q = new Query();
					q.NoLock = true;
					q.OrderBy = new OrderBy(ChatMessage.Columns.K, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(ChatMessage.Columns.K);
					q.TopRecords = 1;
					ChatMessageSet cms = new ChatMessageSet(q);
					number = cms[0].K;
				}
				else
				{
					Query q = new Query();
					q.NoLock = true;
					q.QueryCondition = new And(
						new Q(ChatMessage.Columns.DateTime, QueryOperator.GreaterThanOrEqualTo, dateMin),
						new Q(ChatMessage.Columns.DateTime, QueryOperator.LessThan, dateMax)
						);
					q.ReturnCountOnly = true;
					ChatMessageSet cms = new ChatMessageSet(q);
					number = cms.Count;
				}
			}
			else if (StatType == 11) //Photo views
			{
				Query q = new Query();
				q.NoLock = true;
				q.Columns = new ColumnSet();
				q.ExtraSelectElements["sum"] = "sum(Count)";
				q.QueryCondition = new And(
					new Q(Log.Columns.Date, QueryOperator.GreaterThanOrEqualTo, dateMin),
					new Q(Log.Columns.Date, QueryOperator.LessThan, dateMax),
					new Q(Log.Columns.Item, Log.Items.PhotoImpressions)
				);

				LogSet ls = new LogSet(q);

				number = (int)ls[0].ExtraSelectElements["sum"];
			}
			else if (StatType == 12) // Unique members from visit table
			{
				Query q = new Query();
				q.NoLock = true;
				q.Columns = new ColumnSet();
				q.ExtraSelectElements["count"] = "count(distinct UsrK)";
				q.QueryCondition = new And(
					new Or(new Q(Visit.Columns.DateTimeStart, QueryOperator.GreaterThanOrEqualTo, dateMin), new Q(Visit.Columns.DateTimeLast, QueryOperator.GreaterThanOrEqualTo, dateMin)),
					new Or(new Q(Visit.Columns.DateTimeStart, QueryOperator.LessThan, dateMax), new Q(Visit.Columns.DateTimeLast, QueryOperator.LessThan, dateMax))
					);

				VisitSet vs = new VisitSet(q);

				number = (int)vs[0].ExtraSelectElements["count"];
			}
			else if (StatType == 13) //New users
			{
				Query q = new Query();
				q.NoLock = true;
				q.QueryCondition = new And(
					new Q(Usr.Columns.DateTimeSignUp, QueryOperator.GreaterThanOrEqualTo, dateMin),
					new Q(Usr.Columns.DateTimeSignUp, QueryOperator.LessThan, dateMax),
					new Or(new Q(Usr.Columns.IsSkeleton, false), new Q(Usr.Columns.IsSkeleton, QueryOperator.IsNull, null))
					);
				q.ReturnCountOnly = true;
				UsrSet us = new UsrSet(q);
				number = us.Count;

			}
			else
				number = 0;


			//if (estimateWholeDay)
			//{
			//    number = (int)Banner.EstimateFullDay(DateTime.Now, number);
			//}
			if (number == 0)
				return "<small>n/a</small>";
			else
				return number.ToString("###,##0");

		}
Exemple #2
0
			public string GetArchiveItems(int numberOfItems)
			{
				//Get from cache...
				string s = (string)Caching.Instances.Main.Get(GetArchiveCacheKey(this.Guid));
				if (s != null && !Vars.DevEnv)
					return s;

				string roomGuidPacked = this.Guid.Pack();
				System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();

				List<ItemStub> items = new List<ItemStub>();
				//Generate...
				if (IsThreadRoom || IsHasPrimaryThreadObject)
				{
					if (ThreadK > 0)
					{
						Query q = new Query();
						q.QueryCondition = new Q(Comment.Columns.ThreadK, ThreadK);
						q.OrderBy = new OrderBy(Comment.Columns.K, OrderBy.OrderDirection.Descending);
						q.TopRecords = numberOfItems;

						CommentSet cs = new CommentSet(q);

						for (int i = 0; i < cs.Count; i++)
						{
							Comment c = cs[i];

							if (!c.ChatItemGuid.HasValue)
							{
								c.ChatItemGuid = Guid.NewGuid();
								c.Update();
							}

							CommentMessageStub cms = c.GetCommentMessageStub();
							items.Add(cms);
						}
					}
				}
				else
				{
					//get from ChatMessage

					bool isBuddyIfRoomIsPrivate = IsPrivateChatRoom && ((Usr)ObjectBob).HasFullBuddy(SecondObjectK);

					Query q = new Query();
					q.QueryCondition = new Q(ChatMessage.Columns.RoomGuid, this.Guid);
					q.OrderBy = new OrderBy(ChatMessage.Columns.K, OrderBy.OrderDirection.Descending);
					q.TopRecords = numberOfItems;

					ChatMessageSet cs = new ChatMessageSet(q);

					for (int i = 0; i < cs.Count; i++)
					{
						ChatMessage cm = cs[i];

						if (cm.Deleted.HasValue && cm.Deleted.Value)
							break;

						if (!cm.ChatItemGuid.HasValue)
						{
							cm.ChatItemGuid = Guid.NewGuid();
							cm.Update();
						}

						if (IsPrivateChatRoom)
						{
							PrivateStub p = new PrivateStub(
								cm.ChatItemGuid.Value.Pack(),
								ItemType.PrivateChatMessage,
								cm.DateTime.Ticks.ToString(),
								roomGuidPacked,
								cm.FromUsr.NickName,
								cm.FromUsr.StmuParams,
								cm.FromUsr.K,
								cm.FromUsr.HasPicNotFacebook ? cm.FromUsr.Pic.ToString() : "0",
								cm.FromUsr.HasChatPic ? cm.FromUsr.ChatPic.Value.ToString() : "0",
								cm.Text,
								"",
								isBuddyIfRoomIsPrivate);
							items.Add(p);
						}
						else
						{
							MessageStub m = new MessageStub(
								cm.ChatItemGuid.Value.Pack(),
								ItemType.PrivateChatMessage,
								cm.DateTime.Ticks.ToString(),
								roomGuidPacked,
								cm.FromUsr.NickName,
								cm.FromUsr.StmuParams,
								cm.FromUsr.K,
								cm.FromUsr.HasPicNotFacebook ? cm.FromUsr.Pic.ToString() : "0",
								cm.FromUsr.HasChatPic ? cm.FromUsr.ChatPic.Value.ToString() : "0",
								cm.Text,
								"");
							items.Add(m);
						}
					}
				}

				string itemsString = "";

				if (items.Count > 0)
				{
					StringBuilder sb = new StringBuilder();
					foreach (ItemStub item in items)
					{
						if (sb.Length > 0)
							sb.Append(",");

						sb.Append(serializer.Serialize(item));
					}
					itemsString = sb.ToString();
				}

				Caching.Instances.Main.Set(GetArchiveCacheKey(this.Guid), itemsString);

				return itemsString;

			}
Exemple #3
0
		static void SendAll(int delay, string type)
		{
			Random r = new Random();
			Query q = new Query();
			q.TopRecords = 10;
			if (type == "c")
			{
				q.QueryCondition = new Q(ChatMessage.Columns.K, QueryOperator.GreaterThan, r.Next(15000000) + 5000);
				ChatMessageSet bs = new ChatMessageSet(q);
				if (bs.Count == 0)
				{
					for (int i = 1; i < 100; i++)
					{
						SendNow(new ChatMessage() { 
							DateTime = new DateTime(2008, 12, 1), 
							UsrK = 1,
							K = 2456543,
							Text = "This is a message"}, r);
						System.Threading.Thread.Sleep(r.Next(delay / 10, delay));
					}
				}
				else
				{
					for (int i = 0; i < bs.Count - 1; i++)
					{
						SendNow(bs[i], r);

						System.Threading.Thread.Sleep(r.Next(delay / 10, delay));
						//Console.ReadLine();
					}
				}
			}
			else if (type == "p")
			{
				q.QueryCondition = new Q(Photo.Columns.K, QueryOperator.GreaterThan, r.Next(8000000) + 5000);
				PhotoSet bs = new PhotoSet(q);

				for (int i = 0; i < bs.Count - 1; i++)
				{
					SendNow(bs[i], r);

					System.Threading.Thread.Sleep(r.Next(delay / 10, delay));
					//Console.ReadLine();
				}
			}
			else if (type == "o")
			{
				q.QueryCondition = new Q(Comment.Columns.K, QueryOperator.GreaterThan, r.Next(8000000) + 5000);
				CommentSet bs = new CommentSet(q);

				for (int i = 0; i < bs.Count - 1; i++)
				{
					try
					{
						bs[i].SendLiveChatMessagesForTesting();
					}
					catch (Exception ex)
					{
						Console.WriteLine(ex.ToString());
					}

					System.Threading.Thread.Sleep(r.Next(delay / 10, delay));
					//Console.ReadLine();
				}
			}
			else if (type == "u")
			{
				q.QueryCondition = new And(new Q(Usr.Columns.K, QueryOperator.GreaterThan, r.Next(2000000) + 100), new Q(Usr.Columns.CommentCount, QueryOperator.GreaterThan, 100));
				UsrSet bs = new UsrSet(q);

				for (int i = 0; i < bs.Count - 1; i++)
				{
					try
					{
						Guid g = Guid.Empty;

						ChatLibrary.ChatServerInterface cs1 = (ChatLibrary.ChatServerInterface)Activator.GetObject(typeof(ChatLibrary.ChatServerInterface), Bobs.Vars.ChatServerAddress);
						cs1.JoinRoom(new Chat.RoomSpec(RoomType.Normal).Guid, bs[i].K);

						ChatLibrary.ChatServerInterface cs = (ChatLibrary.ChatServerInterface)Activator.GetObject(typeof(ChatLibrary.ChatServerInterface), Bobs.Vars.ChatServerAddress);
						string chatItems = cs.GetLatest(bs[i].K, 23423, true, Guid.Empty, ref g);
						Console.WriteLine(chatItems);
					}
					catch(Exception ex)
					{
						Console.WriteLine(ex.ToString());
					}

					System.Threading.Thread.Sleep(r.Next(delay / 10, delay));
					//Console.ReadLine();
				}
			}

		}