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