/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void Page_Load([NotNull] object sender, [NotNull] EventArgs e) { // check if this feature is disabled if (!this.Get <YafBoardSettings>().AllowPrivateMessages) { YafBuildLink.RedirectInfoPage(InfoMessage.Disabled); } if (this.IsPostBack) { return; } if (this.Request.QueryString.GetFirstOrDefault("v").IsSet()) { this.View = PmViewConverter.FromQueryString(this.Request.QueryString.GetFirstOrDefault("v")); this.hidLastTab.Value = $"View{(int)this.View}"; } this.PageLinks.AddRoot(); this.PageLinks.AddLink( this.Get <YafBoardSettings>().EnableDisplayName ? this.PageContext.CurrentUserData.DisplayName : this.PageContext.PageUserName, YafBuildLink.GetLink(ForumPages.cp_profile)); this.PageLinks.AddLink(this.GetText("TITLE")); this.NewPM.NavigateUrl = YafBuildLink.GetLinkNotEscaped(ForumPages.pmessage); this.NewPM2.NavigateUrl = this.NewPM.NavigateUrl; }
/// <summary> /// Get Messages by To User Id /// </summary> /// <param name="repository"> /// The repository. /// </param> /// <param name="userId"> /// The user id. /// </param> /// <param name="view"> /// The view. /// </param> /// <returns> /// The <see cref="List"/>. /// </returns> public static List <UserPMessage> List( this IRepository <UserPMessage> repository, [NotNull] int userId, [NotNull] PmView view) { CodeContracts.VerifyNotNull(repository); return(view == PmView.Archive ? repository.Get(p => p.UserID == userId && p.IsRead == false && p.IsArchived == true) : repository.Get( p => p.UserID == userId && p.IsRead == false && p.IsDeleted == false && p.IsArchived == false)); }
public static string ToQueryStringParam(PmView view) { switch (view) { case PmView.Outbox: return("out"); case PmView.Inbox: return("in"); case PmView.Archive: return("arch"); default: return(null); } }
/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void Page_Load([NotNull] object sender, [NotNull] EventArgs e) { // check if this feature is disabled if (!this.Get <BoardSettings>().AllowPrivateMessages) { BuildLink.RedirectInfoPage(InfoMessage.Disabled); } if (this.IsPostBack) { return; } if (this.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("v").IsSet()) { this.View = PmViewConverter.FromQueryString(this.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("v")); this.hidLastTab.Value = $"View{(int)this.View}"; } this.NewPM.NavigateUrl = BuildLink.GetLinkNotEscaped(ForumPages.PostPrivateMessage); this.NewPM2.NavigateUrl = this.NewPM.NavigateUrl; }
/// <summary> /// Handles the Load event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void Page_Load([NotNull] object sender, [NotNull] EventArgs e) { // check if this feature is disabled if (!this.Get <BoardSettings>().AllowPrivateMessages) { BuildLink.RedirectInfoPage(InfoMessage.Disabled); } if (this.IsPostBack) { return; } if (this.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("v").IsSet()) { this.View = PmViewConverter.FromQueryString(this.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("v")); this.hidLastTab.Value = $"View{(int)this.View}"; } this.NewPM.NavigateUrl = BuildLink.GetLink(ForumPages.PostPrivateMessage); this.NewPM2.NavigateUrl = this.NewPM.NavigateUrl; // Renew PM Statistics var dt = this.GetRepository <PMessage>().UserMessageCount(this.PageContext.PageUserID); if (dt.HasRows()) { this.InfoInbox.Text = this.InfoArchive.Text = this.InfoOutbox.Text = this.GetPMessageText( "PMLIMIT_ALL", dt.Rows[0]["NumberTotal"], dt.Rows[0]["NumberIn"], dt.Rows[0]["NumberOut"], dt.Rows[0]["NumberArchived"], dt.Rows[0]["NumberAllowed"]); } }
/// <summary> /// Get Private Messages by user /// </summary> /// <param name="repository"> /// The repository. /// </param> /// <param name="userId"> /// The user id. /// </param> /// <param name="view"> /// The view. /// </param> /// <param name="sortField"> /// The sort field. /// </param> /// <param name="sortAscending"> /// The sort ascending. /// </param> /// <returns> /// The <see cref="List"/>. /// </returns> public static List <dynamic> List( this IRepository <PMessage> repository, [NotNull] int userId, [NotNull] PmView view, [NotNull] string sortField, [NotNull] bool sortAscending) { CodeContracts.VerifyNotNull(repository); return(repository.DbAccess.Execute( db => { var expression = OrmLiteConfig.DialectProvider.SqlExpression <PMessage>(); expression.Join <UserPMessage>((a, b) => a.ID == b.PMessageID) .Join <UserPMessage, User>( (b, c) => b.UserID == Sql.TableAlias(c.ID, "c"), db.Connection.TableAlias("c")).Join <User>( (a, d) => a.FromUserID == Sql.TableAlias(d.ID, "d"), db.Connection.TableAlias("d")); switch (view) { case PmView.Inbox: expression.Where <UserPMessage>( b => b.UserID == userId && b.IsArchived == false && b.IsDeleted == false); break; case PmView.Outbox: expression.Where <PMessage, UserPMessage>( (a, b) => a.FromUserID == userId && b.IsArchived == false && b.IsInOutbox == true); break; case PmView.Archive: expression.Where <UserPMessage>(b => b.UserID == userId && b.IsArchived == true); break; } switch (sortField) { case "Subject": { if (sortAscending) { expression.OrderBy <PMessage>(a => a.Subject); } else { expression.OrderByDescending <PMessage>(a => a.Subject); } } break; case "Created": { if (sortAscending) { expression.OrderBy <PMessage>(a => a.Created); } else { expression.OrderByDescending <PMessage>(a => a.Created); } } break; case "ToUser": { if (sortAscending) { expression.OrderBy <UserPMessage>(a => a.UserID); } else { expression.OrderByDescending <UserPMessage>(a => a.UserID); } } break; case "FromUser": { if (sortAscending) { expression.OrderBy <PMessage>(a => a.FromUserID); } else { expression.OrderByDescending <PMessage>(a => a.FromUserID); } } break; } expression.Select <PMessage, UserPMessage, User, User>( (a, b, c, d) => new { a.ReplyTo, PMessageID = a.ID, UserPMessageID = b.ID, a.FromUserID, FromUser = Sql.TableAlias("d.Name", "d"), FromUserDisplayName = Sql.TableAlias("d.DisplayName", "d"), FromStyle = Sql.TableAlias("d.UserStyle", "d"), FromSuspended = Sql.TableAlias("d.Suspended", "d"), ToUserID = b.UserID, ToUser = Sql.TableAlias("c.Name", "c"), ToUserDisplayName = Sql.TableAlias("c.DisplayName", "c"), ToStyle = Sql.TableAlias("c.UserStyle", "c"), ToSuspended = Sql.TableAlias("c.Suspended", "c"), a.Created, a.Subject, a.Body, a.Flags, UserPMFlags = b.Flags, b.IsRead, b.IsReply, b.IsInOutbox, b.IsArchived, b.IsDeleted }); return db.Connection.Select <object>(expression); })); }