Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 private void SetThreadCollectionData(PostsTable table, PostModelStoreThreadCollection data, ref BasicEntityInfo bi)
 {
     SetThreadCollectionData(table.Views.PostCollectionLoadInfoView.Fetch(), data, ref bi);
 }
Ejemplo n.º 6
0
 private void SetThreadPreviewData(PostsTable table, PostModelStoreThreadPreview data, ref BasicEntityInfo bi)
 {
     SetThreadPreviewData(table.Views.ThreadPreviewLoadInfoView.Fetch(), data, ref bi);
 }
Ejemplo n.º 7
0
 private void SetPostLightData(IEsentSession session, PostsTable table, bool getPostCount, PostModelStorePostLight data, ref BasicEntityInfo bi)
 {
     SetPostLightData(session, table.Views.PostLightLoadView.Fetch(), getPostCount, data, ref bi);
 }
Ejemplo n.º 8
0
        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);
                }
            }
        }
Ejemplo n.º 9
0
 private bool GotoEntityId(PostsTable table, PostStoreEntityId id)
 {
     return(table.Indexes.PrimaryIndex.Find(table.Indexes.PrimaryIndex.CreateKey(id.Id)));
 }
Ejemplo n.º 10
0
 private ILink GetLinkAtCurrentPosition(PostsTable table)
 {
     (var entityType, var boardId, var sequenceId, var parentSequenceId) = ExtractLinkData(table);
     return(ConstructLink(entityType, boardId, sequenceId, parentSequenceId));
 }
Ejemplo n.º 11
0
 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
         );
 }
Ejemplo n.º 12
0
 private IEnumerable <(int sequenceId, PostStoreEntityId parentId)> FindAllChildrenSeqNums(PostsTable table, PostStoreEntityId parent)
 {
     return(FindAllChildrenSeqNums(table, new[] { parent }));
 }
Ejemplo n.º 13
0
 private IEnumerable <(PostStoreEntityId id, PostStoreEntityId parentId)> FindAllChildren(PostsTable table, PostStoreEntityId parent)
 {
     return(FindAllChildren(table, new[] { parent }));
 }
Ejemplo n.º 14
0
        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);
                }
            }
        }
Ejemplo n.º 15
0
 public PostsResp SetPostsList(PostsTable post)
 {
     return(AddPosts(post));
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Инициализировать основную таблицу.
 /// </summary>
 /// <param name="session">Сессия.</param>
 /// <param name="tableid">Идентификатор таблицы.</param>
 protected virtual void InitializeMainTable(IEsentSession session, JET_TABLEID tableid)
 {
     PostsTable.CreateColumnsAndIndexes(session.Session, tableid);
 }
Ejemplo n.º 17
0
 private void SetBareEntityData(PostsTable table, PostModelStoreBareEntity data, ref BasicEntityInfo bi)
 {
     SetBareEntityData(table.Views.BareEntityLoadInfoView.Fetch(), data, ref bi);
 }