using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.GlobalHelper;
using CMS.ProjectManagement;
using CMS.UIControls;
using CMS.ExtendedControls;
public partial class CMSModules_ProjectManagement_Controls_UI_Projecttaskstatus_Edit : CMSAdminEditControl
{
#region "Variables"
private ProjectTaskStatusInfo mProjecttaskstatusObj = null;
private int mProjecttaskstatusId = 0;
#endregion
#region "Properties"
///
/// Messages placeholder
///
public override MessagesPlaceHolder MessagesPlaceHolder
{
get
{
return plcMess;
}
}
///
/// Indicates if control is used on live site
///
public override bool IsLiveSite
{
get
{
return base.IsLiveSite;
}
set
{
base.IsLiveSite = value;
plcMess.IsLiveSite = value;
}
}
///
/// Projecttaskstatus data.
///
public ProjectTaskStatusInfo ProjecttaskstatusObj
{
get
{
if (mProjecttaskstatusObj == null)
{
mProjecttaskstatusObj = ProjectTaskStatusInfoProvider.GetProjectTaskStatusInfo(TaskStatusID);
}
return mProjecttaskstatusObj;
}
set
{
mProjecttaskstatusObj = value;
if (value != null)
{
mProjecttaskstatusId = value.TaskStatusID;
}
else
{
mProjecttaskstatusId = 0;
}
}
}
///
/// Projecttaskstatus ID.
///
public int TaskStatusID
{
get
{
return mProjecttaskstatusId;
}
set
{
mProjecttaskstatusId = value;
mProjecttaskstatusObj = null;
}
}
#endregion
#region "Page events"
protected void Page_Load(object sender, EventArgs e)
{
CheckPermissions("CMS.ProjectManagement", ProjectManagementPermissionType.MANAGE_CONFIGURATION);
if (StopProcessing)
{
return;
}
SetupControls();
// Set edited object
if (mProjecttaskstatusId > 0)
{
EditedObject = ProjecttaskstatusObj;
}
// Load the form data
if (!URLHelper.IsPostback())
{
LoadData();
}
}
protected void btnOk_Click(object sender, EventArgs e)
{
// Validate and save the data
Process();
}
#endregion
#region "Private methods"
///
/// Initializes form controls.
///
private void SetupControls()
{
// Button
btnOk.Text = GetString("general.ok");
// Validators
rfvTaskStatusDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
rfvTaskStatusName.ErrorMessage = GetString("general.requirescodename");
// Display 'Changes were saved' message if required
if (QueryHelper.GetBoolean("saved", false) && !URLHelper.IsPostback())
{
ShowChangesSaved();
}
colorPicker.SupportFolder = URLHelper.ResolveUrl("~/CMSAdminControls/ColorPicker");
}
///
/// Loads the data into the form.
///
private void LoadData()
{
// Load the form from the info object
if (ProjecttaskstatusObj != null)
{
txtTaskStatusName.Text = ProjecttaskstatusObj.TaskStatusName;
txtTaskStatusDisplayName.Text = ProjecttaskstatusObj.TaskStatusDisplayName;
colorPicker.SelectedColor = ProjecttaskstatusObj.TaskStatusColor;
txtTaskStatusIcon.Text = ProjecttaskstatusObj.TaskStatusIcon;
chkTaskStatusIsFinished.Checked = ProjecttaskstatusObj.TaskStatusIsFinished;
chkTaskStatusIsNotStarted.Checked = ProjecttaskstatusObj.TaskStatusIsNotStarted;
chkTaskStatusEnabled.Checked = ProjecttaskstatusObj.TaskStatusEnabled;
}
}
///
// Processes the form - saves the data.
///
private void Process()
{
// Validate the form
if (Validate())
{
// Ensure the info object
if (ProjecttaskstatusObj == null)
{
ProjecttaskstatusObj = new ProjectTaskStatusInfo();
ProjecttaskstatusObj.TaskStatusOrder = ProjectTaskStatusInfoProvider.GetStatusCount(false) + 1;
}
// Initialize object
ProjecttaskstatusObj.TaskStatusName = txtTaskStatusName.Text.Trim();
ProjecttaskstatusObj.TaskStatusDisplayName = txtTaskStatusDisplayName.Text.Trim();
ProjecttaskstatusObj.TaskStatusColor = colorPicker.SelectedColor;
ProjecttaskstatusObj.TaskStatusIcon = txtTaskStatusIcon.Text.Trim();
ProjecttaskstatusObj.TaskStatusIsFinished = chkTaskStatusIsFinished.Checked;
ProjecttaskstatusObj.TaskStatusIsNotStarted = chkTaskStatusIsNotStarted.Checked;
ProjecttaskstatusObj.TaskStatusEnabled = chkTaskStatusEnabled.Checked;
// Save object data to database
ProjectTaskStatusInfoProvider.SetProjectTaskStatusInfo(ProjecttaskstatusObj);
ItemID = ProjecttaskstatusObj.TaskStatusID;
RaiseOnSaved();
// Set the info message
ShowChangesSaved();
}
}
///
/// Validates the form. If validation succeeds returns true, otherwise returns false.
///
private bool Validate()
{
string codename = txtTaskStatusName.Text.Trim();
// Validate required fields
string errorMessage = new Validator()
.NotEmpty(txtTaskStatusDisplayName.Text.Trim(), rfvTaskStatusDisplayName.ErrorMessage)
.NotEmpty(codename, rfvTaskStatusName.ErrorMessage)
.IsCodeName(codename, GetString("general.invalidcodename")).Result;
// Check the uniqueness of the codename
ProjectTaskStatusInfo ptsi = ProjectTaskStatusInfoProvider.GetProjectTaskStatusInfo(codename);
if ((ptsi != null) && (ptsi.TaskStatusID != TaskStatusID))
{
errorMessage = GetString("general.codenameexists");
}
// Give error if status is both: started and finished
if (chkTaskStatusIsFinished.Checked && chkTaskStatusIsNotStarted.Checked)
{
errorMessage = GetString("pm.projectstatus.startandfinish");
}
// Set the error message
if (!String.IsNullOrEmpty(errorMessage))
{
ShowError(errorMessage);
return false;
}
return true;
}
#endregion
}