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"); }
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; }
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(); } } }