?? sendprivatemessage.cs
字號:
namespace ASPNET.StarterKit.Communities.PrivateMessages
{
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using ASPNET.StarterKit.Communities;
[ParseChildren(true)]
public class SendPrivateMessage : SkinnedCommunityControl
{
string _skinFileName = "SendPrivateMessage.ascx";
Panel pnlAuthenticated;
Panel pnlNotAuthenticated;
Panel pnlSenderWebMessageDisabled;
Panel pnlRecipientWebMessageDisabled;
Panel pnlRecipientInvalid;
Panel pnlConfirmSend;
Panel pnlSendNotice;
Panel pnlSendError;
string recipientUserName;
ProfileInfo senderProfile;
ProfileInfo recipientProfile;
TextBox txtSubject;
HyperLink LoginLink;
HyperLink ProfileLink;
DropDownList ddlRecipients;
RadioButtonList rblReplyOption;
Button btnClearForm;
Button btnPreviewMessage;
Button btnSubmit;
Button btnEditMessage;
TextBox txtBodyText;
Label lblErrorMessage;
Label lblRecipient;
Label lblConfirmMessage;
Label lblConfirmSubject;
public SendPrivateMessage() : base()
{
// Assign a default template name
if (SkinFileName == null)
SkinFileName = _skinFileName;
}
override protected string SkinType
{
get { return "ControlSkins"; }
}
override protected void InitializeSkin(Control skin)
{
pnlAuthenticated = (Panel)GetControl(skin, "pnlAuthenticated");
pnlNotAuthenticated = (Panel)GetControl(skin, "pnlNotAuthenticated");
pnlSenderWebMessageDisabled = (Panel)GetControl(skin, "pnlSenderWebMessageDisabled");
pnlRecipientWebMessageDisabled = (Panel)GetControl(skin, "pnlRecipientWebMessageDisabled");
pnlRecipientInvalid = (Panel)GetControl(skin, "pnlRecipientInvalid");
pnlConfirmSend = (Panel)GetControl(skin, "pnlConfirmSend");
pnlSendNotice = (Panel)GetControl(skin, "pnlSendNotice");
pnlSendError = (Panel)GetControl(skin, "pnlSendError");
txtSubject = (TextBox)GetControl(skin, "txtSubject");
LoginLink = (HyperLink)GetControl(skin, "LoginLink");
ProfileLink = (HyperLink)GetControl(skin, "ProfileLink");
ddlRecipients = (DropDownList)GetControl(skin, "ddlRecipients");
rblReplyOption = (RadioButtonList)GetControl(skin, "rblReplyOption");
txtBodyText = (TextBox)GetControl(skin, "txtBodyText");
btnPreviewMessage = (Button)GetControl(skin, "btnPreviewMessage");
btnPreviewMessage.Click += new System.EventHandler(btnPreviewMessage_Click);
btnClearForm = (Button)GetControl(skin, "btnClearForm");
btnClearForm.Click += new System.EventHandler(btnClearForm_Click);
btnSubmit = (Button)GetControl(skin, "btnSubmit");
btnSubmit.Click += new System.EventHandler(btnSubmit_Click);
btnEditMessage = (Button)GetControl(skin, "btnEditMessage");
btnEditMessage.Click += new System.EventHandler(btnEditMessage_Click);
lblErrorMessage = (Label)GetControl(skin, "lblErrorMessage");
lblRecipient = (Label)GetControl(skin, "lblRecipient");
lblConfirmMessage = (Label)GetControl(skin, "lblConfirmMessage");
lblConfirmSubject = (Label)GetControl(skin, "lblConfirmSubject");
}
override protected void OnLoad(EventArgs e)
{
senderProfile = UserUtility.GetProfile(objUserInfo.Username);
if (!Page.IsPostBack)
{
EnsureChildControls();
HidePanels();
if(!CheckUserAuthenticated() || !CheckSenderWebMessageEnabled())
{
return;
}
recipientUserName = null;
if (Context.Request.QueryString["recipient"] != null)
{
recipientUserName = Context.Request.QueryString["recipient"];
}
PopulateRecipientList();
if(recipientUserName != null)
{
// Get profile information
recipientProfile = UserUtility.GetProfile(recipientUserName);
if(!CheckRecipientIsValidUser() || !CheckRecipientWebMessageEnabled())
{
return;
}
foreach(ListItem li in ddlRecipients.Items)
{
if(li.Value.ToLower() == recipientUserName.ToLower())
{
li.Selected = true;
break;
}
}
}
if (Context.Request.QueryString["subject"] != null)
{
txtSubject.Text = Context.Request.QueryString["subject"];
}
pnlAuthenticated.Visible = true;
}
else // is a post-back
{
HidePanels();
if(!CheckUserAuthenticated() || !CheckSenderWebMessageEnabled())
{
return;
}
Page.Validate();
if(Page.IsValid)
{
recipientUserName = ddlRecipients.SelectedValue;
recipientProfile = UserUtility.GetProfile(recipientUserName);
if(!CheckRecipientIsValidUser() || !CheckRecipientWebMessageEnabled())
{
return;
}
}
}
}
private void PopulateRecipientList()
{
System.Collections.ArrayList Recipients = PrivateMessageUtility.GetRecipientList();
ListItem li;
ddlRecipients.Items.Add("-- Select recipient --");
foreach(PrivateMessageRecipientInfo ri in Recipients)
{
li = new ListItem(ri.UserName,ri.UserName);
if(ri.UserName == recipientUserName)
{
li.Selected = true;
}
ddlRecipients.Items.Add(li);
}
ddlRecipients.DataBind();
}
private void btnPreviewMessage_Click(Object s, EventArgs e)
{
pnlConfirmSend.Visible = true;
lblRecipient.Text = recipientUserName;
lblConfirmMessage.Text = PrivateMessageUtility.CreatePreviewBody(senderProfile,recipientProfile,txtSubject.Text,txtBodyText.Text);
// PrivateMessageUtility.CreatePreviewBody(senderProfile,recipientProfile,txtSubject.Text,txtBodyText.Text);
lblConfirmSubject.Text = txtSubject.Text;
}
private void btnClearForm_Click(Object s, EventArgs e)
{
txtSubject.Text = "";
txtBodyText.Text = "";
pnlAuthenticated.Visible = true;
}
private void btnSubmit_Click(Object s, EventArgs e)
{
bool sendPrivateEmail = false;
if(rblReplyOption.SelectedIndex == 1)
{
sendPrivateEmail = true;
}
bool SendStatus = PrivateMessageUtility.SendMessage(senderProfile,recipientProfile,txtSubject.Text,txtBodyText.Text,sendPrivateEmail);
if(SendStatus)
{
pnlSendNotice.Visible = true;
}
else
{
pnlSendError.Visible = true;
}
}
private void btnEditMessage_Click(Object s, EventArgs e)
{
pnlAuthenticated.Visible = true;
}
private bool CheckUserAuthenticated()
{
if (!objUserInfo.IsAuthenticated)
{
pnlNotAuthenticated.Visible = true;
LoginLink.NavigateUrl = CommunityGlobals.CalculatePath( String.Format("Users_Login.aspx?ReturnUrl={0}", Context.Server.UrlEncode(Context.Request.RawUrl)));
return false;
}
return true;
}
private bool CheckSenderWebMessageEnabled()
{
if(!senderProfile.EnablePrivateMessages)
{
pnlSenderWebMessageDisabled.Visible = true;
ProfileLink.NavigateUrl = CommunityGlobals.CalculatePath("Users_EditProfile.aspx");
return false;
}
return true;
}
private bool CheckRecipientWebMessageEnabled()
{
if(!recipientProfile.EnablePrivateMessages)
{
pnlRecipientWebMessageDisabled.Visible = true;
return false;
}
return true;
}
private bool CheckRecipientIsValidUser()
{
if(recipientProfile == null)
{
pnlRecipientInvalid.Visible = true;
return false;
}
return true;
}
private void HidePanels()
{
pnlAuthenticated.Visible = false;
pnlNotAuthenticated.Visible = false;
pnlSenderWebMessageDisabled.Visible = false;
pnlRecipientWebMessageDisabled.Visible = false;
pnlRecipientInvalid.Visible = false;
pnlConfirmSend.Visible = false;
pnlSendNotice.Visible = false;
pnlSendError.Visible = false;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -