📄 threadmove.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Discussions.Components;
namespace CommunityServer.Discussions.Controls
{
// *********************************************************************
// MoveThread
//
/// <summary>
/// This sever control is used to move a thread from forum to forum.
/// </summary>
///
// ********************************************************************/
public class ThreadMove : SkinnedWebControl
{
#region Member Variables & constructor
CSContext csContext = CSContext.Current;
string skinFilename = "Moderation\\View-ThreadMove.ascx";
Label subject;
Label hasReplies;
Label postedBy;
ForumListBox moveTo;
CheckBox sendEmail;
Button cancelMove;
Button move;
ForumPost postToMove;
RequiredFieldValidator moveToValidator;
// *********************************************************************
// MovePost
//
/// <summary>
/// Constuctor
/// </summary>
///
// ***********************************************************************/
public ThreadMove() : base()
{
// Set the skin file
if (SkinFilename == null)
SkinFilename = skinFilename;
if (csContext.ReturnUrl == null)
{
throw new CSException(CSExceptionType.ReturnURLRequired);
}
}
#endregion
#region Initialize Skin
// *********************************************************************
// InitializeSkin
//
/// <summary>
/// Initialize the control template and populate the control with values
/// </summary>
/// <param name="skin">Control instance of the skin</param>
///
// ***********************************************************************/
override protected void InitializeSkin(Control skin)
{
// Get the post we want to move
postToMove = Posts.GetPost(csContext.PostID, csContext.User.UserID);
// Do an access check
Permissions.AccessCheck( postToMove.Section, Permission.Moderate, CSContext.Current.User, postToMove );
// Display subject
subject = (Label) skin.FindControl("Subject");
if (null != subject)
{
subject.Text = postToMove.Subject;
}
// Has Replies?
hasReplies = (Label) skin.FindControl("HasReplies");
if (null != hasReplies)
{
if (postToMove.Replies > 0)
{
hasReplies.Text = ResourceManager.GetString("Yes");
}
else
{
hasReplies.Text = ResourceManager.GetString("No");
}
}
// Posted By
postedBy = (Label) skin.FindControl("PostedBy");
if (null != postedBy)
{
postedBy.Text = postToMove.Username + " ";
}
// Display the move to drop down list
moveTo = (ForumListBox) skin.FindControl("MoveTo");
// Cancel
cancelMove = (Button) skin.FindControl("CancelMove");
if (null != cancelMove)
{
cancelMove.Click += new EventHandler(Cancel_Click);
cancelMove.Text = ResourceManager.GetString("MovePost_CancelMove");
}
// Move Post
move = (Button) skin.FindControl("MovePost");
if (null != move)
{
move.Click += new System.EventHandler(MoveThread_Click);
move.Text = ResourceManager.GetString("MovePost_MovePost");
}
// Validator
moveToValidator = (RequiredFieldValidator) skin.FindControl("MoveToValidator");
// Send email
sendEmail = (CheckBox) skin.FindControl("SendUserEmail");
sendEmail.Text = ResourceManager.GetString("MovePost_SendUserEmail");
}
#endregion
#region Move Event
// *********************************************************************
// MoveThread_Click
//
/// <summary>
/// Event handler for deleting a post
/// </summary>
///
// ***********************************************************************/
private void MoveThread_Click(Object sender, EventArgs e)
{
// Make sure their selection is a valid forum.
if(moveTo.SelectedForum == 0)
{
moveToValidator.IsValid = false;
return;
}
// Are we valid?
Moderate.MovePost(postToMove, moveTo.SelectedForum, csContext.User.UserID, sendEmail.Checked);
// Redirect the user to the return url.
HttpContext.Current.Response.Redirect(csContext.ReturnUrl);
HttpContext.Current.Response.End();
}
void Cancel_Click (object sender, EventArgs e)
{
CSContext.Current.Context.Response.Redirect(csContext.ReturnUrl, true);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -