using System;
using System.Data;
using CMS.CMSHelper;
using CMS.GlobalHelper;
using CMS.SiteProvider;
using CMS.UIControls;
[Title(Text = "CSS sylesheets", ImageUrl = "Objects/CMS_CSSStylesheet/object.png")]
public partial class CMSAPIExamples_Code_Development_CSSStyleSheets_Default : CMSAPIExamplePage
{
#region "Initialization"
protected void Page_Load(object sender, EventArgs e)
{
// Css stylesheet
apiCreateCssStylesheet.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(CreateCssStylesheet);
apiGetAndUpdateCssStylesheet.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndUpdateCssStylesheet);
apiGetAndBulkUpdateCssStylesheets.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(GetAndBulkUpdateCssStylesheets);
apiDeleteCssStylesheet.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(DeleteCssStylesheet);
// Css stylesheet on site
apiAddCssStylesheetToSite.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(AddCssStylesheetToSite);
apiRemoveCssStylesheetFromSite.RunExample += new CMSAPIExamples_Controls_APIExample.OnRunExample(RemoveCssStylesheetFromSite);
}
#endregion
#region "Mass actions"
///
/// Runs all creating and managing examples.
///
public override void RunAll()
{
base.RunAll();
// Css stylesheet
apiCreateCssStylesheet.Run();
apiGetAndUpdateCssStylesheet.Run();
apiGetAndBulkUpdateCssStylesheets.Run();
// Css stylesheet on site
apiAddCssStylesheetToSite.Run();
}
///
/// Runs all cleanup examples.
///
public override void CleanUpAll()
{
base.CleanUpAll();
// Css stylesheet on site
apiRemoveCssStylesheetFromSite.Run();
// Css stylesheet
apiDeleteCssStylesheet.Run();
}
#endregion
#region "API examples - Css stylesheet"
///
/// Creates css stylesheet. Called when the "Create stylesheet" button is pressed.
///
private bool CreateCssStylesheet()
{
// Create new css stylesheet object
CssStylesheetInfo newStylesheet = new CssStylesheetInfo();
// Set the properties
newStylesheet.StylesheetDisplayName = "My new stylesheet";
newStylesheet.StylesheetName = "MyNewStylesheet";
newStylesheet.StylesheetText = "Some CSS code";
// Save the css stylesheet
CssStylesheetInfoProvider.SetCssStylesheetInfo(newStylesheet);
return true;
}
///
/// Gets and updates css stylesheet. Called when the "Get and update stylesheet" button is pressed.
/// Expects the CreateCssStylesheet method to be run first.
///
private bool GetAndUpdateCssStylesheet()
{
// Get the css stylesheet
CssStylesheetInfo updateStylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewStylesheet");
if (updateStylesheet != null)
{
// Update the properties
updateStylesheet.StylesheetDisplayName = updateStylesheet.StylesheetDisplayName.ToLower();
// Save the changes
CssStylesheetInfoProvider.SetCssStylesheetInfo(updateStylesheet);
return true;
}
return false;
}
///
/// Gets and bulk updates css stylesheets. Called when the "Get and bulk update stylesheets" button is pressed.
/// Expects the CreateCssStylesheet method to be run first.
///
private bool GetAndBulkUpdateCssStylesheets()
{
// Prepare the parameters
string where = "StylesheetName LIKE N'MyNewStylesheet%'";
// Get the data
DataSet stylesheets = CssStylesheetInfoProvider.GetCssStylesheets(where, null);
if (!DataHelper.DataSourceIsEmpty(stylesheets))
{
// Loop through the individual items
foreach (DataRow stylesheetDr in stylesheets.Tables[0].Rows)
{
// Create object from DataRow
CssStylesheetInfo modifyStylesheet = new CssStylesheetInfo(stylesheetDr);
// Update the properties
modifyStylesheet.StylesheetDisplayName = modifyStylesheet.StylesheetDisplayName.ToUpper();
// Save the changes
CssStylesheetInfoProvider.SetCssStylesheetInfo(modifyStylesheet);
}
return true;
}
return false;
}
///
/// Deletes css stylesheet. Called when the "Delete stylesheet" button is pressed.
/// Expects the CreateCssStylesheet method to be run first.
///
private bool DeleteCssStylesheet()
{
// Get the css stylesheet
CssStylesheetInfo deleteStylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewStylesheet");
// Delete the css stylesheet
CssStylesheetInfoProvider.DeleteCssStylesheetInfo(deleteStylesheet);
return (deleteStylesheet != null);
}
#endregion
#region "API examples - Css stylesheet on site"
///
/// Adds css stylesheet to site. Called when the "Add stylesheet to site" button is pressed.
/// Expects the CreateCssStylesheet method to be run first.
///
private bool AddCssStylesheetToSite()
{
// Get the css stylesheet
CssStylesheetInfo stylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewStylesheet");
if (stylesheet != null)
{
int stylesheetId = stylesheet.StylesheetID;
int siteId = CMSContext.CurrentSiteID;
// Save the binding
CssStylesheetSiteInfoProvider.AddCssStylesheetToSite(stylesheetId, siteId);
return true;
}
return false;
}
///
/// Removes css stylesheet from site. Called when the "Remove stylesheet from site" button is pressed.
/// Expects the AddCssStylesheetToSite method to be run first.
///
private bool RemoveCssStylesheetFromSite()
{
// Get the css stylesheet
CssStylesheetInfo removeStylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewStylesheet");
if (removeStylesheet != null)
{
int siteId = CMSContext.CurrentSiteID;
// Get the binding
CssStylesheetSiteInfo stylesheetSite = CssStylesheetSiteInfoProvider.GetCssStylesheetSiteInfo(removeStylesheet.StylesheetID, siteId);
// Delete the binding
CssStylesheetSiteInfoProvider.DeleteCssStylesheetSiteInfo(stylesheetSite);
return true;
}
return false;
}
#endregion
}