using System;
using System.Web.UI.WebControls;
using CMS.DataEngine;
using CMS.EventLog;
using CMS.GlobalHelper;
using CMS.IO;
using CMS.SettingsProvider;
using CMS.UIControls;
using CMS.ExtendedControls;
public partial class CMSModules_DocumentTypes_Pages_Development_DocumentType_List : SiteManagerPage
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterExportScript();
CurrentMaster.Title.TitleText = GetString("DocumentType_List.Title");
CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_DocumentType/object.png");
CurrentMaster.Title.HelpTopicName = "document_types_list";
CurrentMaster.Title.HelpName = "helpTopic";
// New item link
string[,] actions = new string[1, 6];
actions[0, 0] = HeaderActions.TYPE_HYPERLINK;
actions[0, 1] = GetString("DocumentType_List.NewDoctype");
actions[0, 2] = null;
actions[0, 3] = ResolveUrl("DocumentType_New.aspx");
actions[0, 4] = null;
actions[0, 5] = GetImageUrl("Objects/CMS_DocumentType/add.png");
CurrentMaster.HeaderActions.Actions = actions;
// Unigrid initialization
uniGrid.OnAction += uniGrid_OnAction;
uniGrid.ZeroRowsText = GetString("general.nodatafound");
}
///
/// Handles the UniGrid's OnAction event.
///
/// Name of item (button) that throws event
/// ID (value of Primary key) of corresponding data row
protected void uniGrid_OnAction(string actionName, object actionArgument)
{
if (actionName == "edit")
{
URLHelper.Redirect("DocumentType_Edit.aspx?documenttypeid=" + actionArgument);
}
else if (actionName == "delete")
{
int classId = ValidationHelper.GetInteger(actionArgument, 0);
DataClassInfo dci = DataClassInfoProvider.GetDataClass(classId);
if (dci != null)
{
// Check default class
if (dci.ClassName.EqualsCSafe(DataClassInfoProvider.DefaultPageClassName, true))
{
ShowError(String.Format(GetString("DocumentType_List.DefaultPageClass"), dci.ClassName));
}
// Check inerasable dependences
else if (DataClassInfoProvider.CheckDependencies(dci.ClassID))
{
ShowError(String.Format(GetString("DocumentType_List.Dependences"), dci.ClassName));
}
else
{
// Delete dataclass and its dependencies
try
{
string className = dci.ClassName;
DataClassInfoProvider.DeleteDataClass(dci);
// Delete view
string viewName = DataHelper.GetViewName(dci.ClassTableName, null);
TableManager tm = new TableManager(null);
tm.DropView(viewName);
// Delete icons
string iconFile = UIHelper.GetDocumentTypeIconPath(this, className, "", false, true);
string iconLargeFile = UIHelper.GetDocumentTypeIconPath(this, className, "48x48", false, true);
iconFile = Server.MapPath(iconFile);
iconLargeFile = Server.MapPath(iconLargeFile);
if (File.Exists(iconFile))
{
File.Delete(iconFile);
}
// Ensure that ".gif" file will be deleted
iconFile = iconFile.Replace(".png", ".gif");
if (File.Exists(iconFile))
{
File.Delete(iconFile);
}
if (File.Exists(iconLargeFile))
{
File.Delete(iconLargeFile);
}
// Ensure that ".gif" file will be deleted
iconLargeFile = iconLargeFile.Replace(".png", ".gif");
if (File.Exists(iconLargeFile))
{
File.Delete(iconLargeFile);
}
}
catch (Exception ex)
{
EventLogProvider ev = new EventLogProvider();
ev.LogEvent("Development", "DeleteDocType", ex);
ShowError(GetString("DocumentType_List.DeleteFailed") + " " + ex.Message);
}
}
}
}
}
}