Exemplo n.º 1
0
        public ForumPostAndUser GetPostAndUser(long tenantId, long elementId, long threadId, long postId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                ForumPostAndUser post = null;
                string           sql  = _sqlManager.GetSql("Sql.ReadForumPostAndUser.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, elementId);
                dbm.AddParameter("@ThreadId", FieldType.BigInt, threadId);
                dbm.AddParameter("@PostId", FieldType.BigInt, postId);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    post = new ForumPostAndUser
                    {
                        Post = GetPost(dbm),
                        User = GetUser(dbm)
                    };
                }
                return(post);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemplo n.º 2
0
        private Form GetQuotePostForm(string context)
        {
            // Get page, element, thread and post identifiers
            string[] parts     = context.Split('|');
            long     pageId    = Convert.ToInt64(parts[1]);
            long     elementId = Convert.ToInt64(parts[2]);
            long     threadId  = Convert.ToInt64(parts[3]);
            long     postId    = Convert.ToInt64(parts[4]);

            // Get existing post details
            ForumPostAndUser forumPostAndUser = _forumService.GetPostAndUser(_authenticationService.TenantId, elementId, threadId, postId);

            // Construct form
            Form form = new Form {
                Fields = new Dictionary <string, IFormField>(), Id = FormId.ToString(), Context = context
            };

            form.Fields.Add("message", new MultiLineTextField
            {
                Name                 = "message",
                Label                = ElementResource.ForumMessageLabel,
                Required             = true,
                RequiredErrorMessage = ElementResource.ForumMessageRequiredMessage,
                Rows                 = 10,
                Value                = _forumService.GetQuoteMessage(forumPostAndUser.Post.Message, forumPostAndUser.User.Alias)
            });
            form.SubmitLabel = ElementResource.ForumQuoteThreadButtonLabel;

            // Return result
            return(form);
        }