// ReSharper enable InconsistentNaming private LoadPostDataContext CreateLoadContext(IEsentSession session, bool openMedia, bool openQuotes) { var r = new LoadPostDataContext(); try { r.table = OpenPostsTable(session, OpenTableGrbit.ReadOnly); if (openMedia) { r.mediaTable = OpenMediaFilesTable(session, OpenTableGrbit.ReadOnly); r.mediaTable.Indexes.SequencesIndex.SetAsCurrentIndex(); } if (openQuotes) { r.quotesTable = OpenPostsTable(session, OpenTableGrbit.ReadOnly); r.quotesTable.Indexes.QuotedPostsIndex.SetAsCurrentIndex(); } } catch { r.Dispose(); throw; } return(r); }
private IBoardPostEntity LoadBoardEntity(IEsentSession session, ref LoadPostDataContext loadContext, PostStoreLoadMode loadMode) { var entityType = (PostStoreEntityType)loadContext.table.Columns.EntityType; var dl = loadContext.table.Columns.DataLoaded; if (loadMode.EntityLoadMode != PostStoreEntityLoadMode.EntityOnly && loadMode.EntityLoadMode != PostStoreEntityLoadMode.LinkOnly && dl == false) { var loadMode1 = loadMode.Clone(); loadMode1.EntityLoadMode = PostStoreEntityLoadMode.EntityOnly; loadMode = loadMode1; } switch (entityType) { case PostStoreEntityType.Post: case PostStoreEntityType.ThreadPreviewPost: case PostStoreEntityType.CatalogPost: return(LoadPost(session, ref loadContext, loadMode, entityType)); case PostStoreEntityType.Thread: case PostStoreEntityType.Catalog: return(LoadPostCollection(session, ref loadContext, loadMode, entityType)); case PostStoreEntityType.ThreadPreview: return(LoadThreadPreview(session, ref loadContext, loadMode, entityType)); case PostStoreEntityType.BoardPage: return(LoadThreadCollection(session, ref loadContext, loadMode, entityType)); default: return(null); } }
private IBoardPostEntity LoadPost(IEsentSession session, ref LoadPostDataContext loadContext, bool getPostCount, PostStoreEntityType?entityType) { BasicEntityInfo bi = default(BasicEntityInfo); PostModelStorePost r = IsOriginalPageSequence(entityType) ? new PostModelStorePostWithSequence() : new PostModelStorePost(); SetPostData(session, ref loadContext, getPostCount, r, ref bi); return(r); }
private void SetPostData(IEsentSession session, ref LoadPostDataContext loadContext, PostsTable.ViewValues.PostFullLoadView v, bool getPostCount, PostModelStorePost data, ref BasicEntityInfo bi) { SetPostLightData(session, v, getPostCount, data, ref bi); var posterName = v.PosterName; var otherData = DeserializeDataContract <PostOtherData>(v.OtherDataBinary); otherData?.FillPostData(data, LinkSerialization, posterName); data.Comment = ObjectSerializationService.Deserialize(v.Document) as IPostDocument; data.LoadedTime = FromUtcToOffset(v.LoadedTime) ?? DateTimeOffset.MinValue; data.MediaFiles = LoadPostMedia(loadContext.mediaTable ?? throw new InvalidOperationException("Таблица медиафайлов не открыта"), ref bi, false); data.Quotes = LoadQuotesForPost(loadContext.quotesTable ?? throw new InvalidOperationException("Таблица цитат не открыта"), false, ref bi); }
private IBoardPostEntity LoadThreadCollection(IEsentSession session, ref LoadPostDataContext loadContext, PostStoreLoadMode loadMode, PostStoreEntityType entityType) { switch (loadMode.EntityLoadMode) { case PostStoreEntityLoadMode.LinkOnly: return(LoadLinkOnly(loadContext.table)); case PostStoreEntityLoadMode.EntityOnly: return(LoadBareEntity(loadContext.table, entityType)); case PostStoreEntityLoadMode.Light: case PostStoreEntityLoadMode.Full: return(LoadThreadCollection(loadContext.table)); default: return(null); } }
private IBoardPostEntity LoadPost(IEsentSession session, ref LoadPostDataContext loadContext, PostStoreLoadMode loadMode, PostStoreEntityType entityType) { switch (loadMode.EntityLoadMode) { case PostStoreEntityLoadMode.LinkOnly: return(LoadLinkOnly(loadContext.table)); case PostStoreEntityLoadMode.EntityOnly: return(LoadBareEntity(loadContext.table, entityType)); case PostStoreEntityLoadMode.Light: return(LoadPostLight(session, loadContext.table, loadMode.RetrieveCounterNumber, entityType)); case PostStoreEntityLoadMode.Full: return(LoadPost(session, ref loadContext, loadMode.RetrieveCounterNumber, entityType)); default: return(null); } }
private void SetPostData(IEsentSession session, ref LoadPostDataContext loadContext, bool getPostCount, PostModelStorePost data, ref BasicEntityInfo bi) { SetPostData(session, ref loadContext, loadContext.table.Views.PostFullLoadView.Fetch(), getPostCount, data, ref bi); }