private void SetThreadCollectionData(PostsTable.ViewValues.PostCollectionLoadInfoView v, PostModelStoreThreadCollection data, ref BasicEntityInfo bi) { SetBareEntityData(v, data, ref bi); data.Etag = v.Etag; data.Info = ObjectSerializationService.Deserialize(v.OtherDataBinary) as IBoardPostCollectionInfoSet; data.Stage = v.ChildrenLoadStage; }
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 void SetBareEntityData(PostsTable.ViewValues.BareEntityLoadInfoView v, PostModelStoreBareEntity data, ref BasicEntityInfo bi) { LoadBasicInfo(v, ref bi); data.EntityType = bi.entityType; data.Link = bi.link; data.ParentLink = bi.parentLink; data.Thumbnail = ObjectSerializationService.Deserialize(v.Thumbnail) as IPostMediaWithSize; data.Subject = v.Subject; data.StoreId = bi.entityId; data.StoreParentId = bi.parentEntityId; if (data is IBoardPostEntityWithSequence2 s) { s.SetOnPageSequence(v.ThreadPreviewSequence ?? int.MaxValue); } }
private List <IPostMedia> LoadPostMedia(MediaFilesTable mediaTable, ref BasicEntityInfo bi, bool setIndex) { var r = new List <IPostMedia>(); var index = mediaTable.Indexes.SequencesIndex; if (setIndex) { index.SetAsCurrentIndex(); } foreach (var md in index.EnumerateAsMediaDataView(index.CreateKey(bi.entityId.Id))) { var m = ObjectSerializationService.Deserialize(md.MediaData) as IPostMedia; if (m != null) { r.Add(m); } } return(r); }