⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendprivatemessage.cs

📁 C#邮件代码库,用于邮件发送
💻 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;
		}
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -