Beispiel #1
0
		public ArchiveStub GetArchive(string roomGuid, string lastItemGuidString, int sessionID, string lastActionTicks, string pageUrl, StateStub[] roomState)
		{
			WaitIfDevEnv();

			Guid guid = roomGuid.UnPackGuid();
			Chat.RoomSpec spec = Chat.RoomSpec.FromGuid(guid);
			int usrK = Usr.Current == null ? 0 : Usr.Current.K;

			if (spec == null)
				throw new InvalidRoomException();

			if (!spec.CheckPermission(Usr.Current, false))
				throw new ReadPermissionException();

			storeRoomState(roomState, usrK);

			lastActionTicks = resetLastActionAndSessionID(sessionID);

			ArchiveStub ars = new ArchiveStub();
			ars.roomGuid = roomGuid;
			ars.archiveItems = spec.GetArchiveItems(20);

			RefreshStub r = refreshPrivate(false, lastItemGuidString, sessionID, lastActionTicks, pageUrl, usrK, roomState);
			ars.guestRefreshStubs = r.guestRefreshStubs;
			ars.itemsJson = r.itemsJson;
			ars.lastActionTicks = r.lastActionTicks;
			ars.lastItemGuidReturned = r.lastItemGuidReturned;
			return ars;
		}
Beispiel #2
0
		public void GetArchiveItemsSuccessCallback(ArchiveStub s, object userContext, string methodName)
		{
			if (s != null)
			{
				processItems(s.itemsJson, s.lastActionTicks, s.lastItemGuidReturned, methodName, s.guestRefreshStubs, "", false);

				if (GotArchiveItems != null)
					GotArchiveItems(this, new GotArchiveItemsEventArgs(s.roomGuid, s.archiveItems));
			}

			continueProcessingCriticalRequestQueue();
		}