DeletePages
Mit diesem Script kann man beliebige Seiten im Projekt löschen. Es können mehrere Seiten mit Pipe | getrennt angegeben werden. Beispiel-Aufruf:
DeletePages /Pages:"=TEST/11|=TEST/12"
Ist eine angegebene Seite im Projekt nicht vorhanden, wird eine Systemmeldung ausgegeben.
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;
public class DeletePages
{
[DeclareAction("DeletePages")]
public void Action(ActionCallingContext acc)
{
string pagesString = null;
acc.GetParameter("Pages", ref pagesString);
if (string.IsNullOrEmpty(pagesString))
{
new Decider().Decide(EnumDecisionType.eOkDecision, "Parameter 'Pages' missing.", "DeletePages",
EnumDecisionReturn.eOK, EnumDecisionReturn.eOK, null, false, EnumDecisionIcon.eFATALERROR);
return;
}
var pages = pagesString.Split('|');
foreach (var page in pages)
{
DeletePage(page);
}
}
private void DeletePage(string page)
{
ActionCallingContext accPage = new ActionCallingContext();
accPage.AddParameter("PAGENAME", page);
var isPageValid = new CommandLineInterpreter().Execute("edit", accPage);
if (isPageValid)
{
using (new QuietModeStep(QuietModes.ShowNoDialogs))
{
new CommandLineInterpreter().Execute("XGedSelectPageAction");
new CommandLineInterpreter().Execute("GfDlgMgrActionIGfWindDelete");
}
}
else
{
new BaseException("Page not found: " + page, MessageLevel.Error).FixMessage();
}
}
}