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;
using CMS.SiteProvider;
// Edited object
[EditedObject(PredefinedObjectType.ORDERSTATUS, "orderStatusId")]
// Title
[Title("Objects/Ecommerce_OrderStatus/object.png", "OrderStatus_Edit.HeaderCaption", "newedit_order", ExistingObject = true)]
[Title("Objects/Ecommerce_OrderStatus/new.png", "OrderStatus_Edit.NewItemCaption", "newedit_order", NewObject = true)]
public partial class CMSModules_Ecommerce_Pages_Tools_Configuration_OrderStatus_OrderStatus_Edit : CMSOrderStatusesPage
{
#region "Variables"
protected int mOrderStatusId = 0;
#endregion
protected void Page_Load(object sender, EventArgs e)
{
rfvStatusDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
rfvStatusName.ErrorMessage = GetString("general.requirescodename");
clrPicker.SupportFolder = "~/CMSAdminControls/ColorPicker";
string currentOrderStatus = GetString("OrderStatus_Edit.NewItemCaption");
// Get order status id from querystring
mOrderStatusId = QueryHelper.GetInteger("orderStatusId", 0);
if (mOrderStatusId > 0)
{
OrderStatusInfo orderStatusObj = EditedObject as OrderStatusInfo;
if (orderStatusObj != null)
{
// Check edited object site ID
CheckEditedObjectSiteID(orderStatusObj.StatusSiteID);
currentOrderStatus = ResHelper.LocalizeString(orderStatusObj.StatusDisplayName);
// Fill editing form
if (!RequestHelper.IsPostBack())
{
LoadData(orderStatusObj);
// Show that the orderStatus 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("OrderStatus_Edit.ItemListLink");
pageTitleTabs[0, 1] = "~/CMSModules/Ecommerce/Pages/Tools/Configuration/OrderStatus/OrderStatus_List.aspx?siteId=" + SiteID;
pageTitleTabs[0, 2] = "";
pageTitleTabs[1, 0] = currentOrderStatus;
pageTitleTabs[1, 1] = "";
pageTitleTabs[1, 2] = "";
CurrentMaster.Title.Breadcrumbs = pageTitleTabs;
}
///
/// Load data of editing orderStatus.
///
/// OrderStatus object
protected void LoadData(OrderStatusInfo orderStatusObj)
{
chkStatusEnabled.Checked = orderStatusObj.StatusEnabled;
txtStatusDisplayName.Text = orderStatusObj.StatusDisplayName;
txtStatusName.Text = orderStatusObj.StatusName;
clrPicker.SelectedColor = orderStatusObj.StatusColor;
chkStatusEmail.Checked = orderStatusObj.StatusSendNotification;
chkMarkOrderAsPaid.Checked = orderStatusObj.StatusOrderIsPaid;
}
///
/// Sets data to database.
///
protected void btnOK_Click(object sender, EventArgs e)
{
// Check permissions
CheckConfigurationModification();
string errorMessage = new Validator()
.NotEmpty(txtStatusName.Text.Trim(), GetString("general.requirescodename"))
.NotEmpty(txtStatusDisplayName.Text.Trim(), GetString("general.requiresdisplayname")).Result;
if (!ValidationHelper.IsCodeName(txtStatusName.Text.Trim()))
{
errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat");
}
if (errorMessage == "")
{
OrderStatusInfo orderStatusObj = OrderStatusInfoProvider.GetOrderStatusInfo(txtStatusName.Text.Trim(), SiteInfoProvider.GetSiteName(ConfiguredSiteID));
// If statusName value is unique for site OR edit
if ((orderStatusObj == null) || (orderStatusObj.StatusID == mOrderStatusId))
{
// If statusName value is unique for site -> determine whether it is update or insert
if ((orderStatusObj == null))
{
// Get OrderStatusInfo object by primary key
orderStatusObj = OrderStatusInfoProvider.GetOrderStatusInfo(mOrderStatusId);
if (orderStatusObj == null)
{
// Create new item -> insert
orderStatusObj = new OrderStatusInfo();
orderStatusObj.StatusSiteID = ConfiguredSiteID;
}
}
orderStatusObj.StatusSendNotification = chkStatusEmail.Checked;
orderStatusObj.StatusEnabled = chkStatusEnabled.Checked;
orderStatusObj.StatusDisplayName = txtStatusDisplayName.Text.Trim();
orderStatusObj.StatusName = txtStatusName.Text.Trim();
orderStatusObj.StatusColor = clrPicker.SelectedColor;
orderStatusObj.StatusOrderIsPaid = chkMarkOrderAsPaid.Checked;
if (orderStatusObj.StatusOrder == 0)
{
orderStatusObj.StatusOrder = OrderStatusInfoProvider.GetLastStatusOrder(orderStatusObj.StatusSiteID) + 1;
}
// Save
OrderStatusInfoProvider.SetOrderStatusInfo(orderStatusObj);
URLHelper.Redirect("OrderStatus_Edit.aspx?orderStatusId=" + orderStatusObj.StatusID + "&saved=1&siteId=" + SiteID);
}
else
{
// Show error message
ShowError(GetString("OrderStatus_Edit.OrderStatusExist"));
}
}
else
{
// Show error message
ShowError(errorMessage);
}
}
}