using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CMS.Ecommerce;
using CMS.GlobalHelper;
using CMS.UIControls;
using CMS.SettingsProvider;
// Edited object
[EditedObject(PredefinedObjectType.INTERNALSTATUS, "statusid")]
// Title
[Title("Objects/Ecommerce_InternalStatus/object.png", "InternalStatus_Edit.HeaderCaption", "newedit_internal_status", ExistingObject = true)]
[Title("Objects/Ecommerce_InternalStatus/new.png", "InternalStatus_New.HeaderCaption", "newedit_internal_status", NewObject = true)]
public partial class CMSModules_Ecommerce_Pages_Tools_Configuration_InternalStatus_InternalStatus_Edit : CMSInternalStatusesPage
{
protected int mStatusId = 0;
protected void Page_Load(object sender, EventArgs e)
{
rfvCodeName.ErrorMessage = GetString("InternalStatus_Edit.errorCodeName");
rfvDisplayName.ErrorMessage = GetString("InternalStatus_Edit.errorDisplayName");
// Control initializations
lblInternalStatusName.Text = GetString("InternalStatus_Edit.InternalStatusNameLabel");
lblInternalStatusDisplayName.Text = GetString("InternalStatus_Edit.InternalStatusDisplayNameLabel");
string currentInternalStatus = GetString("InternalStatus_Edit.NewItemCaption");
// Get internalStatus id from querystring
mStatusId = QueryHelper.GetInteger("statusid", 0);
if (mStatusId > 0)
{
InternalStatusInfo internalStatusObj = EditedObject as InternalStatusInfo;
if (internalStatusObj != null)
{
CheckEditedObjectSiteID(internalStatusObj.InternalStatusSiteID);
currentInternalStatus = internalStatusObj.InternalStatusDisplayName;
// fill editing form
if (!RequestHelper.IsPostBack())
{
LoadData(internalStatusObj);
// Show that the internalStatus was created or updated successfully
if (QueryHelper.GetString("saved", "") == "1")
{
// Show message
ShowChangesSaved();
}
}
}
}
// Initializes page title breadcrumbs control
string[,] pageTitleTabs = new string[2, 3];
pageTitleTabs[0, 0] = GetString("InternalStatus_Edit.ItemListLink");
pageTitleTabs[0, 1] = "~/CMSModules/Ecommerce/Pages/Tools/Configuration/InternalStatus/InternalStatus_List.aspx?siteId=" + SiteID;
pageTitleTabs[0, 2] = "";
pageTitleTabs[1, 0] = currentInternalStatus;
pageTitleTabs[1, 1] = "";
pageTitleTabs[1, 2] = "";
CurrentMaster.Title.Breadcrumbs = pageTitleTabs;
}
///
/// Load data of editing internalStatus.
///
/// InternalStatus object
protected void LoadData(InternalStatusInfo internalStatusObj)
{
chkInternalStatusEnabled.Checked = internalStatusObj.InternalStatusEnabled;
txtInternalStatusName.Text = internalStatusObj.InternalStatusName;
txtInternalStatusDisplayName.Text = internalStatusObj.InternalStatusDisplayName;
}
///
/// Sets data to database.
///
protected void btnOK_Click(object sender, EventArgs e)
{
CheckConfigurationModification();
string errorMessage = new Validator()
.NotEmpty(txtInternalStatusDisplayName.Text.Trim(), GetString("InternalStatus_Edit.errorDisplayName"))
.NotEmpty(txtInternalStatusName.Text.Trim(), GetString("InternalStatus_Edit.errorCodeName")).Result;
if (!ValidationHelper.IsCodeName(txtInternalStatusName.Text.Trim()))
{
errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat");
}
if (errorMessage == "")
{
// Check unique name for configured site
DataSet ds = InternalStatusInfoProvider.GetInternalStatuses("InternalStatusName = '" + txtInternalStatusName.Text.Trim().Replace("'", "''") + "' AND ISNULL(InternalStatusSiteID, 0) = " + ConfiguredSiteID, null);
InternalStatusInfo internalStatusObj = null;
if (!DataHelper.DataSourceIsEmpty(ds))
{
internalStatusObj = new InternalStatusInfo(ds.Tables[0].Rows[0]);
}
// if internalStatusName value is unique
if ((internalStatusObj == null) || (internalStatusObj.InternalStatusID == mStatusId))
{
// if internalStatusName value is unique -> determine whether it is update or insert
if ((internalStatusObj == null))
{
// get InternalStatusInfo object by primary key
internalStatusObj = InternalStatusInfoProvider.GetInternalStatusInfo(mStatusId);
if (internalStatusObj == null)
{
// create new item -> insert
internalStatusObj = new InternalStatusInfo();
internalStatusObj.InternalStatusSiteID = ConfiguredSiteID;
}
}
internalStatusObj.InternalStatusEnabled = chkInternalStatusEnabled.Checked;
internalStatusObj.InternalStatusName = txtInternalStatusName.Text.Trim();
internalStatusObj.InternalStatusDisplayName = txtInternalStatusDisplayName.Text.Trim();
InternalStatusInfoProvider.SetInternalStatusInfo(internalStatusObj);
URLHelper.Redirect("InternalStatus_Edit.aspx?statusid=" + Convert.ToString(internalStatusObj.InternalStatusID) + "&saved=1&siteId=" + SiteID);
}
else
{
// Show error message
ShowError(GetString("InternalStatus_Edit.InternalStatusNameExists"));
}
}
else
{
// Show error message
ShowError(errorMessage);
}
}
}