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(); } } }
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); }