private bool SeekExistingEntityInSequence(PostsTable table, PostStoreEntityId directParent, int postId, out PostStoreEntityId id) { var index = table.Indexes.InThreadPostLinkIndex; index.SetAsCurrentIndex(); var r = index.Find(index.CreateKey(directParent.Id, postId)); if (!r) { id = new PostStoreEntityId() { Id = -1 }; } else { id = new PostStoreEntityId() { Id = index.Views.RetrieveIdFromIndexView.Fetch().Id }; } return(r); }
private List <ILink> LoadQuotesForPost(PostsTable quotesTable, bool setIndex, ref BasicEntityInfo bi) { var r = new HashSet <ILink>(BoardLinkEqualityComparer.Instance); if (bi.parentEntityId != null && bi.parentSequenceId != null) { var index = quotesTable.Indexes.QuotedPostsIndex; if (setIndex) { index.SetAsCurrentIndex(); } foreach (var seqId in index.EnumerateAsSequenceNumberView(index.CreateKey(bi.parentEntityId.Value.Id, bi.sequenceId))) { r.Add(new PostLink() { Engine = EngineId, Board = bi.boardId, OpPostNum = bi.parentSequenceId.Value, PostNum = seqId.SequenceNumber }); } } return(r.OrderBy(l => l, BoardLinkComparer.Instance).ToList()); }
protected void Submit_Click(object sender, EventArgs e) { ApplicationUserManager manager = Context.GetOwinContext().GetUserManager <ApplicationUserManager>(); string userID = ApplicationUserStore.GetUserIDByName(manager, User); SqlDatabase sqlDatabase = new SqlDatabase(); UserTable userTable = new UserTable(sqlDatabase); if (!userTable.IsEmailConfirmed(userID)) { ShowError("Please confirm your email address!"); return; } string title = TitleTextBox.Text.Trim(); string fileName = fileupload.PostedFile.FileName.Trim(); if (String.IsNullOrEmpty(title)) { ShowError("The title field is required!"); return; } if (String.IsNullOrEmpty(fileName)) { ShowError("The image is required!"); return; } if (fileupload.PostedFile.ContentLength > 2097152) { ShowError("The maximum file size is 2 MB!"); return; } if (fileName.Length > 64) { ShowError("The maximum file name length is 64!"); return; } if (!fileName.EndsWith(".jpg") && !fileName.EndsWith(".png") && !fileName.EndsWith(".gif") && !fileName.EndsWith(".jpeg")) { ShowError("Only jpg, png and gif files are supported!"); return; } PostsTable posts = new PostsTable(sqlDatabase); DateTime date = DateTime.Now; string fileExtension = Path.GetExtension(fileName); string directoryPath = Server.MapPath("/") + "media\\" + date.Year + "\\" + date.Month; if (!Directory.Exists(directoryPath)) { Directory.CreateDirectory(directoryPath); } fileName = directoryPath + "\\" + User.Identity.Name + GetRandomString() + fileExtension; string fileUrl = MapURL(Page.ResolveUrl(fileName)); posts.Add(userID, title, fileUrl); fileupload.PostedFile.SaveAs(fileName); sqlDatabase.CloseConnection(); ErrorMessageText.Visible = false; SuccessMessageText.Text = String.Format("Your post \"{0}\" has been uploaded successfully and is waiting for approval in ", title); successMessage.Visible = true; }
private (ILink link, ILink parentLink, int sequenceId, string boardId, int?parentSequenceId) LoadEntityLinks(PostsTable table, GenericPostStoreEntityType genEntityType) { var v = table.Views.LinkInfoView.Fetch(); var boardId = v.BoardId; var seqId = v.SequenceNumber; var parentSeqId = v.ParentSequenceNumber; ILink link, parentLink; ConstructLinksForBasicLoad(genEntityType, boardId, parentSeqId, seqId, out link, out parentLink); return(link, parentLink, seqId, boardId, parentSeqId); }
private void SetThreadCollectionData(PostsTable table, PostModelStoreThreadCollection data, ref BasicEntityInfo bi) { SetThreadCollectionData(table.Views.PostCollectionLoadInfoView.Fetch(), data, ref bi); }
private void SetThreadPreviewData(PostsTable table, PostModelStoreThreadPreview data, ref BasicEntityInfo bi) { SetThreadPreviewData(table.Views.ThreadPreviewLoadInfoView.Fetch(), data, ref bi); }
private void SetPostLightData(IEsentSession session, PostsTable table, bool getPostCount, PostModelStorePostLight data, ref BasicEntityInfo bi) { SetPostLightData(session, table.Views.PostLightLoadView.Fetch(), getPostCount, data, ref bi); }
private IEnumerable <(PostStoreEntityId id, PostStoreEntityId parentId)> FindAllChildren(PostsTable table, IEnumerable <PostStoreEntityId> parents) { var index = table.Indexes.ParentIdIndex; index.SetAsCurrentIndex(); foreach (var id in parents.Distinct()) { foreach (var cid in index.EnumerateAsRetrieveIdFromIndexView(index.CreateKey(id.Id))) { yield return(new PostStoreEntityId() { Id = cid.Id }, id); } } }
private bool GotoEntityId(PostsTable table, PostStoreEntityId id) { return(table.Indexes.PrimaryIndex.Find(table.Indexes.PrimaryIndex.CreateKey(id.Id))); }
private ILink GetLinkAtCurrentPosition(PostsTable table) { (var entityType, var boardId, var sequenceId, var parentSequenceId) = ExtractLinkData(table); return(ConstructLink(entityType, boardId, sequenceId, parentSequenceId)); }
private (PostStoreEntityType entityType, string boardId, int sequenceId, int?parentSequenceId) ExtractLinkData(PostsTable table) { return ( entityType : (PostStoreEntityType)table.Columns.EntityType, boardId : table.Columns.BoardId, sequenceId : table.Columns.SequenceNumber, parentSequenceId : table.Columns.ParentSequenceNumber ); }
private IEnumerable <(int sequenceId, PostStoreEntityId parentId)> FindAllChildrenSeqNums(PostsTable table, PostStoreEntityId parent) { return(FindAllChildrenSeqNums(table, new[] { parent })); }
private IEnumerable <(PostStoreEntityId id, PostStoreEntityId parentId)> FindAllChildren(PostsTable table, PostStoreEntityId parent) { return(FindAllChildren(table, new[] { parent })); }
private IEnumerable <(int sequenceId, PostStoreEntityId parentId)> FindAllChildrenSeqNums(PostsTable table, IEnumerable <PostStoreEntityId> parents) { var index = table.Indexes.ParentIdIndex; index.SetAsCurrentIndex(); foreach (var id in parents.Distinct()) { foreach (var _ in index.Enumerate(index.CreateKey(id.Id))) { yield return(table.Columns.SequenceNumber, id); } } }
public PostsResp SetPostsList(PostsTable post) { return(AddPosts(post)); }
/// <summary> /// Инициализировать основную таблицу. /// </summary> /// <param name="session">Сессия.</param> /// <param name="tableid">Идентификатор таблицы.</param> protected virtual void InitializeMainTable(IEsentSession session, JET_TABLEID tableid) { PostsTable.CreateColumnsAndIndexes(session.Session, tableid); }
private void SetBareEntityData(PostsTable table, PostModelStoreBareEntity data, ref BasicEntityInfo bi) { SetBareEntityData(table.Views.BareEntityLoadInfoView.Fetch(), data, ref bi); }