using System;
using System.Collections;
using System.Security.Principal;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.CMSImportExport;
using CMS.EventLog;
using CMS.ExtendedControls;
using CMS.GlobalHelper;
using CMS.IO;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.DocumentEngine;
using CMS.UIControls;
using CMS.VirtualPathHelper;
using CMS.WorkflowEngine;
using TreeNode = CMS.DocumentEngine.TreeNode;
public partial class CMSModules_ImportExport_Controls_NewSiteWizard : CMSUserControl, ICallbackEventHandler
{
#region "Variables"
private static readonly Hashtable mManagers = new Hashtable();
private string mFinishUrl = "~/CMSSiteManager/Sites/site_list.aspx";
private bool? mSiteIsRunning = null;
private bool mImportCanceled = false;
private SiteImportSettings mImportSettings = null;
#endregion
#region "Properties"
///
/// Redirection URL after finish button click.
///
public string FinishUrl
{
get
{
return mFinishUrl;
}
set
{
mFinishUrl = value;
}
}
///
/// Import manager.
///
public ImportManager ImportManager
{
get
{
string key = "imManagers_" + ProcessGUID;
if (mManagers[key] == null)
{
if (!StorageHelper.IsExternalStorage(null))
{
// Detect restart of the application
if (ApplicationInstanceGUID != CMSContext.ApplicationInstanceGUID)
{
LogStatusEnum progressLog = ImportSettings.GetProgressState();
if (progressLog == LogStatusEnum.Info)
{
ImportSettings.LogProgressState(LogStatusEnum.UnexpectedFinish, GetString("SiteImport.ApplicationRestarted"));
}
}
}
ImportManager im = new ImportManager(ImportSettings);
im.ThrowExceptionOnError = true;
mManagers[key] = im;
}
return (ImportManager)mManagers[key];
}
set
{
string key = "imManagers_" + ProcessGUID;
mManagers[key] = value;
}
}
///
/// Wizard height.
///
public int PanelHeight
{
get
{
return ValidationHelper.GetInteger(ViewState["PanelHeight"], 400);
}
set
{
ViewState["PanelHeight"] = value;
}
}
///
/// Application instance GUID.
///
public Guid ApplicationInstanceGUID
{
get
{
if (ViewState["ApplicationInstanceGUID"] == null)
{
ViewState["ApplicationInstanceGUID"] = CMSContext.ApplicationInstanceGUID;
}
return ValidationHelper.GetGuid(ViewState["ApplicationInstanceGUID"], Guid.Empty);
}
}
///
/// Import process GUID.
///
public Guid ProcessGUID
{
get
{
if (ViewState["ProcessGUID"] == null)
{
ViewState["ProcessGUID"] = Guid.NewGuid();
}
return ValidationHelper.GetGuid(ViewState["ProcessGUID"], Guid.Empty);
}
}
///
/// Persistent settings key.
///
public string PersistentSettingsKey
{
get
{
return "NewSiteWizard_" + ProcessGUID + "_Settings";
}
}
///
/// Import settings stored in viewstate.
///
public SiteImportSettings ImportSettings
{
get
{
if (mImportSettings == null)
{
SiteImportSettings settings = (SiteImportSettings)PersistentStorageHelper.GetValue(PersistentSettingsKey);
if (settings == null)
{
throw new Exception("[ImportWizard.ImportSettings]: Import settings has been lost.");
}
mImportSettings = settings;
}
return mImportSettings;
}
set
{
mImportSettings = value;
PersistentStorageHelper.SetValue(PersistentSettingsKey, value);
}
}
///
/// Indicates if imported site is running.
///
public bool SiteIsRunning
{
get
{
if (mSiteIsRunning == null)
{
mSiteIsRunning = (ImportManager.Settings.SiteInfo.Status == SiteStatusEnum.Running);
}
return mSiteIsRunning.Value;
}
}
///
/// Web template ID.
///
public int WebTemplateID
{
get
{
return ValidationHelper.GetInteger(ViewState["WebTemplateID"], 0);
}
set
{
ViewState["WebTemplateID"] = value;
}
}
///
/// Site name.
///
public string SiteName
{
get
{
return ValidationHelper.GetString(ViewState["SiteName"], "");
}
set
{
ViewState["SiteName"] = value;
}
}
///
/// Site domain.
///
public string Domain
{
get
{
return ValidationHelper.GetString(ViewState["Domain"], "");
}
set
{
ViewState["Domain"] = value;
}
}
///
/// Site culture.
///
public string Culture
{
get
{
return ValidationHelper.GetString(ViewState["Culture"], "");
}
set
{
ViewState["Culture"] = value;
}
}
#endregion
#region "Finish step wizard buttons"
///
/// Finish button.
///
public LocalizedButton FinishButton
{
get
{
return wzdImport.FindControl("FinishNavigationTemplateContainerID").FindControl("StepFinishButton") as LocalizedButton;
}
}
///
/// Previous button.
///
public LocalizedButton PreviousButton
{
get
{
return wzdImport.FindControl("StepNavigationTemplateContainerID").FindControl("StepPreviousButton") as LocalizedButton;
}
}
///
/// Next button.
///
public LocalizedButton NextButton
{
get
{
if (wzdImport.ActiveStepIndex == 0)
{
return wzdImport.FindControl("StartNavigationTemplateContainerID").FindControl("StepNextButton") as LocalizedButton;
}
return wzdImport.FindControl("StepNavigationTemplateContainerID").FindControl("StepNextButton") as LocalizedButton;
}
}
///
/// Cancel button.
///
public LocalizedButton CancelButton
{
get
{
return wzdImport.FindControl("StepNavigationTemplateContainerID").FindControl("StepCancelButton") as LocalizedButton;
}
}
#endregion
#region "Page events"
protected void Page_Load(object sender, EventArgs e)
{
// Register script for pendingCallbacks repair
ScriptHelper.FixPendingCallbacks(Page);
// Handle Import settings
if (!Page.IsCallback && !RequestHelper.IsPostBack())
{
// Check if any template is present on the disk
if (!WebTemplateInfoProvider.IsAnyTemplatePresent())
{
selectTemplate.StopProcessing = true;
pnlWrapper.Visible = false;
lblError.Visible = true;
lblError.Text = GetString("NewSite.NoWebTemplate");
}
// Initialize virtual path provider
VirtualPathHelper.Init(Page);
// Initialize import settings
ImportSettings = new SiteImportSettings(CMSContext.CurrentUser);
ImportSettings.WebsitePath = Server.MapPath("~/");
ImportSettings.PersistentSettingsKey = PersistentSettingsKey;
}
if (Page.IsCallback)
{
// Stop processing when callback
selectTemplate.StopProcessing = true;
selectMaster.StopProcessing = true;
}
else
{
selectTemplate.StopProcessing = (CausedPostback(PreviousButton) && (wzdImport.ActiveStepIndex == 2)) ? false : (wzdImport.ActiveStepIndex != 1);
selectMaster.StopProcessing = (wzdImport.ActiveStepIndex != 5);
PreviousButton.Enabled = true;
PreviousButton.Visible = (wzdImport.ActiveStepIndex <= 4);
NextButton.Enabled = true;
// Bind async controls events
ctrlAsync.OnFinished += ctrlAsync_OnFinished;
ctrlAsync.OnError += ctrlAsync_OnError;
ctrlImport.OnFinished += ctrlImport_OnFinished;
if (wzdImport.ActiveStepIndex < 4)
{
siteDetails.Settings = ImportSettings;
pnlImport.Settings = ImportSettings;
}
// Javascript functions
string script =
"var nMessageText = '';\n" +
"var nErrorText = '';\n" +
"var nWarningText = '';\n" +
"var nMachineName = '" + SqlHelperClass.MachineName.ToLowerCSafe() + "';\n" +
"var getBusy = false; \n" +
"function GetImportState(cancel) \n" +
"{ if(window.Activity){window.Activity();} if (getBusy && !cancel) return; getBusy = true; setTimeout(\"getBusy = false;\", 2000); var argument = cancel + ';' + nMessageText.length + ';' + nErrorText.length + ';' + nWarningText.length + ';' + nMachineName; return " + Page.ClientScript.GetCallbackEventReference(this, "argument", "SetImportStateMssg", "argument", true) + " } \n";
script +=
"function SetImportStateMssg(rValue, context) \n" +
"{ \n" +
" getBusy = false; \n" +
" if(rValue!='') \n" +
" { \n" +
" var args = context.split(';');\n" +
" var values = rValue.split('" + SiteExportSettings.SEPARATOR + "');\n" +
" var messageElement = document.getElementById('" + lblProgress.ClientID + "');\n" +
" var errorElement = document.getElementById('" + lblError.ClientID + "');\n" +
" var warningElement = document.getElementById('" + lblWarning.ClientID + "');\n" +
" var messageText = nMessageText;\n" +
" messageText = values[1] + messageText.substring(messageText.length - args[1]);\n" +
" if(messageText.length > nMessageText.length){ nMessageText = messageElement.innerHTML = messageText; }\n" +
" var errorText = nErrorText;\n" +
" errorText = values[2] + errorText.substring(errorText.length - args[2]);\n" +
" if(errorText.length > nErrorText.length){ nErrorText = errorElement.innerHTML = errorText; }\n" +
" var warningText = nWarningText;\n" +
" warningText = values[3] + warningText.substring(warningText.length - args[3]);\n" +
" if(warningText.length > nWarningText.length){ nWarningText = warningElement.innerHTML = warningText; }\n" +
" if((values=='') || (values[0]=='F')) \n" +
" { \n" +
" StopImportStateTimer(); \n" +
" if (!document.importCancelled) { \n" +
" if(values[2] == '') { \n" +
" BTN_Enable('" + NextButton.ClientID + "'); \n" +
" } \n" +
" else { \n" +
" BTN_Enable('" + PreviousButton.ClientID + "'); \n" +
" } \n" +
" BTN_Disable('" + CancelButton.ClientID + "'); \n" +
" } \n" +
" } \n" +
" } \n" +
"} \n";
// Register the script to perform get flags for showing buttons retrieval callback
ScriptHelper.RegisterClientScriptBlock(this, GetType(), "GetSetImportState", ScriptHelper.GetScript(script));
// Add cancel button attribute
CancelButton.Attributes.Add("onclick",
"BTN_Disable('" + CancelButton.ClientID + "'); " +
"CancelImport();" +
((wzdImport.ActiveStepIndex == 3) ? string.Empty : "BTN_Enable('" + PreviousButton.ClientID + "'); ") +
"document.importCancelled = true;return false;"
);
wzdImport.NextButtonClick += wzdImport_NextButtonClick;
wzdImport.PreviousButtonClick += wzdImport_PreviousButtonClick;
wzdImport.FinishButtonClick += wzdImport_FinishButtonClick;
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
// Initilaize header
InitializeHeader();
// Button click script
const string afterScript = "var imClicked = false; \n" +
"function NextStepAction() \n" +
"{ \n" +
" if(!imClicked) \n" +
" { \n" +
" imClicked = true; \n" +
" return true; \n" +
" } \n" +
" return false; \n" +
"} \n";
ltlScriptAfter.Text += ScriptHelper.GetScript(afterScript);
// Ensure default button
EnsureDefaultButton();
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
// Save the settings
if (!mImportCanceled && (wzdImport.ActiveStepIndex <= 4))
{
ImportSettings.SavePersistent();
}
}
#endregion
#region "Button handling"
protected void wzdImport_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
if (!mImportCanceled)
{
URLHelper.Redirect(FinishUrl);
}
}
protected void wzdImport_PreviousButtonClick(object sender, WizardNavigationEventArgs e)
{
switch (e.CurrentStepIndex)
{
// Site details
case 2:
if (!siteType.SelectTemplate)
{
wzdImport.ActiveStepIndex--;
}
wzdImport.ActiveStepIndex--;
break;
// Progress
case 4:
URLHelper.Redirect(URLHelper.Url.AbsoluteUri);
break;
default:
wzdImport.ActiveStepIndex--;
break;
}
}
protected void wzdImport_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
switch (e.CurrentStepIndex)
{
// Import type
case 0:
{
if (!siteType.SelectTemplate)
{
try
{
// Get blank web template
WebTemplateInfo wi = WebTemplateInfoProvider.GetWebTemplateInfo("BlankSite");
if (wi == null)
{
e.Cancel = true;
return;
}
WebTemplateID = wi.WebTemplateId;
string path = Server.MapPath(wi.WebTemplateFileName);
if (File.Exists(path + "\\template.zip"))
{
// Template from zip file
path += "\\" + ZipStorageProvider.GetZipFileName("template.zip");
ImportSettings.TemporaryFilesPath = path;
ImportSettings.SourceFilePath = path;
ImportSettings.TemporaryFilesCreated = true;
ImportSettings.RefreshMacroSecurity = true;
}
else
{
// Init the settings
ImportSettings.TemporaryFilesCreated = false;
ImportSettings.SourceFilePath = Server.MapPath(wi.WebTemplateFileName);
ImportSettings.RefreshMacroSecurity = true;
}
if (!File.Exists(ImportSettings.SourceFilePath))
{
try
{
ImportProvider.CreateTemporaryFiles(ImportSettings);
}
catch (Exception ex)
{
lblError.Visible = true;
lblError.Text = ex.Message;
e.Cancel = true;
return;
}
}
if (SiteInfoProvider.GetSitesCount() == 0)
{
// No site exists, overwrite all
ImportSettings.ImportType = ImportTypeEnum.All;
ImportSettings.CopyFiles = false;
}
else
{
// Some site exists, only new objects
ImportSettings.ImportType = ImportTypeEnum.New;
}
ltlScriptAfter.Text = ScriptHelper.GetScript(
"var actDiv = document.getElementById('actDiv'); \n" +
"if (actDiv != null) { actDiv.style.display='block'; } \n" +
"var buttonsDiv = document.getElementById('buttonsDiv'); if (buttonsDiv != null) { buttonsDiv.disabled=true; } \n" +
"BTN_Disable('" + NextButton.ClientID + "'); \n" +
"StartSelectionTimer();"
);
// Preselect objects asynchronously
ctrlAsync.Parameter = "N";
ctrlAsync.RunAsync(SelectObjects, WindowsIdentity.GetCurrent());
e.Cancel = true;
}
catch (Exception ex)
{
lblError.Text = ex.Message;
e.Cancel = true;
return;
}
}
else
{
siteDetails.SiteName = null;
siteDetails.SiteDisplayName = null;
selectTemplate.ReloadData();
}
wzdImport.ActiveStepIndex++;
}
break;
// Template selection
case 1:
{
if (!selectTemplate.ApplySettings())
{
e.Cancel = true;
return;
}
// Init the settings
WebTemplateInfo wi = WebTemplateInfoProvider.GetWebTemplateInfo(selectTemplate.WebTemplateId);
if (wi == null)
{
throw new Exception("Web template not found.");
}
ImportSettings.IsWebTemplate = true;
string path = Server.MapPath(wi.WebTemplateFileName);
if (File.Exists(path + "\\template.zip"))
{
// Template from zip file
path += "\\" + ZipStorageProvider.GetZipFileName("template.zip");
ImportSettings.TemporaryFilesPath = path;
ImportSettings.SourceFilePath = path;
ImportSettings.TemporaryFilesCreated = true;
ImportSettings.RefreshMacroSecurity = true;
}
else
{
// Template from folder
ImportSettings.TemporaryFilesCreated = false;
ImportSettings.SourceFilePath = path;
ImportSettings.RefreshMacroSecurity = true;
try
{
ImportProvider.CreateTemporaryFiles(ImportSettings);
}
catch (Exception ex)
{
lblError.Visible = true;
lblError.Text = ex.Message;
e.Cancel = true;
return;
}
}
if (SiteInfoProvider.GetSitesCount() == 0)
{
// No site exists, overwrite all
ImportSettings.ImportType = ImportTypeEnum.All;
}
else
{
// Some site exists, only new objects
ImportSettings.ImportType = ImportTypeEnum.New;
}
ltlScriptAfter.Text = ScriptHelper.GetScript(
"var actDiv = document.getElementById('actDiv');\n" +
"if (actDiv != null) { actDiv.style.display='block'; }\n" +
"var buttonsDiv = document.getElementById('buttonsDiv');\n" +
"if (buttonsDiv != null) { buttonsDiv.disabled=true; }\n" +
"BTN_Disable('" + NextButton.ClientID + "');\n" +
"BTN_Disable('" + PreviousButton.ClientID + "');\n" +
"StartSelectionTimer();"
);
// Preselect objects asynchronously
ctrlAsync.Parameter = "T";
ctrlAsync.RunAsync(SelectObjects, WindowsIdentity.GetCurrent());
e.Cancel = true;
}
break;
// Site details
case 2:
if (!siteDetails.ApplySettings())
{
e.Cancel = true;
return;
}
// Update settings
ImportSettings = siteDetails.Settings;
Culture = siteDetails.Culture;
pnlImport.ReloadData(true);
wzdImport.ActiveStepIndex++;
break;
// Objects selection
case 3:
if (!pnlImport.ApplySettings())
{
e.Cancel = true;
return;
}
// Check licences
string error = ImportExportControl.CheckLicenses(ImportSettings);
if (!string.IsNullOrEmpty(error))
{
lblError.Text = error;
e.Cancel = true;
return;
}
ImportSettings = pnlImport.Settings;
PreviousButton.Enabled = false;
NextButton.Enabled = false;
SiteName = ImportSettings.SiteName;
Domain = ImportSettings.SiteDomain;
// Init the Mimetype helper (required for the Import)
MimeTypeHelper.LoadMimeTypes();
// Start asynchronnous Import
ImportSettings.SetSettings(ImportExportHelper.SETTINGS_DELETE_TEMPORARY_FILES, false);
ImportSettings.DefaultProcessObjectType = ProcessObjectEnum.Selected;
ImportManager.Settings = ImportSettings;
// Import site asynchronously
ctrlImport.RunAsync(ImportManager.Import, WindowsIdentity.GetCurrent());
ctrlImport.PostbackOnError = false;
ltlScript.Text = ScriptHelper.GetScript("StartImportStateTimer();");
wzdImport.ActiveStepIndex++;
break;
// Import progress
case 4:
PreviousButton.Visible = false;
CultureHelper.SetPreferredCulture(Culture);
if (siteType.SelectTemplate)
{
// Done
finishSite.Domain = Domain;
finishSite.SiteIsRunning = SiteIsRunning;
wzdImport.ActiveStepIndex = 7;
}
else
{
if (ImportManager.Settings.IsWarning())
{
try
{
// Convert default culture
TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);
tree.ChangeSiteDefaultCulture(SiteName, Culture, "en-US");
// Change root GUID
TreeNode root = DocumentHelper.GetDocument(SiteName, "/", Culture, false, "cms.root", null, null, 1, false, null, tree);
if (root != null)
{
root.NodeGUID = Guid.NewGuid();
DocumentHelper.UpdateDocument(root, tree);
}
}
catch (Exception ex)
{
EventLogProvider ev = new EventLogProvider();
ev.LogEvent("NewSiteWizard", "FINISH", ex);
lblError.Text = ex.Message;
e.Cancel = true;
return;
}
}
selectMaster.SiteName = SiteName;
selectMaster.ReloadData();
}
break;
// Master template
case 5:
if (!selectMaster.ApplySettings())
{
e.Cancel = true;
return;
}
siteStructure.SiteName = SiteName;
break;
// Define site structure
case 6:
finishSite.Domain = Domain;
finishSite.SiteIsRunning = SiteIsRunning;
break;
// Other steps
default:
wzdImport.ActiveStepIndex = e.NextStepIndex;
break;
}
}
#endregion
#region "Async control events"
protected void ctrlAsync_OnError(object sender, EventArgs e)
{
lblError.Visible = true;
lblError.Text = ((CMSAdminControls_AsyncControl)sender).Worker.LastException.Message;
// Stop the timer
ltlScript.Text += ScriptHelper.GetScript("StopSelectionTimer();");
}
protected void ctrlAsync_OnFinished(object sender, EventArgs e)
{
string param = ValidationHelper.GetString(ctrlAsync.Parameter, "");
if (param == "N")
{
// Stop the timer
const string script = "StopSelectionTimer();";
// Init control
siteDetails.SiteName = "";
siteDetails.SiteDisplayName = "";
siteDetails.DomainName = URLHelper.GetFullDomain();
siteDetails.DisplayCulture = true;
siteDetails.ReloadData();
wzdImport.ActiveStepIndex += 2;
ltlScriptAfter.Text += ScriptHelper.GetScript(script);
}
else if (param == "T")
{
// Init control
siteDetails.DomainName = URLHelper.GetFullDomain();
siteDetails.DisplayCulture = false;
siteDetails.ReloadData();
wzdImport.ActiveStepIndex++;
}
}
protected void ctrlImport_OnFinished(object sender, EventArgs e)
{
try
{
// Convert default culture
if (!siteType.SelectTemplate)
{
TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);
tree.ChangeSiteDefaultCulture(SiteName, Culture, "en-US");
// Change root GUID
TreeNode root = DocumentHelper.GetDocument(SiteName, "/", Culture, false, "cms.root", null, null, 1, false, null, tree);
if (root != null)
{
root.NodeGUID = Guid.NewGuid();
DocumentHelper.UpdateDocument(root, tree);
}
}
}
catch (Exception ex)
{
EventLogProvider ev = new EventLogProvider();
ev.LogEvent("NewSiteWizard", "FINISH", ex);
}
finally
{
if (ImportManager.Settings.ProcessCanceled)
{
NextButton.Enabled = CancelButton.Enabled = false;
mImportCanceled = true;
lblProgress.Text = "" + ResHelper.GetAPIString("ImportSite.ImportCanceled", "Import process has been cancelled.") + "";
}
else
{
if (!ImportManager.Settings.IsWarning() && !ImportManager.Settings.IsError())
{
PreviousButton.Visible = false;
CultureHelper.SetPreferredCulture(Culture);
if (siteType.SelectTemplate)
{
// Done
finishSite.Domain = Domain;
wzdImport.ActiveStepIndex = 7;
}
else
{
selectMaster.SiteName = SiteName;
wzdImport.ActiveStepIndex += 1;
selectMaster.ReloadData();
}
}
}
// Stop the timer
string script = "StopSelectionTimer();";
ltlScriptAfter.Text += ScriptHelper.GetScript(script);
}
}
#endregion
#region "Other methods"
private bool CausedPostback(params Control[] controls)
{
foreach (Control control in controls)
{
string uniqueID = control.UniqueID;
bool toReturn = (Request.Form[uniqueID] != null) || ((Request.Form["__EVENTTARGET"] != null) && Request.Form["__EVENTTARGET"].EqualsCSafe(uniqueID, true)) || ((Request.Form[uniqueID + ".x"] != null) && (Request.Form[uniqueID + ".y"] != null));
if (toReturn)
{
return true;
}
}
return false;
}
protected void InitializeHeader()
{
int stepIndex = wzdImport.ActiveStepIndex + 1;
switch (wzdImport.ActiveStepIndex)
{
case 0:
ucHeader.Header = GetString("NewSite_ChooseSite.StepTitle");
ucHeader.Description = GetString("NewSite_ChooseSite.StepDesc");
break;
case 1:
ucHeader.Header = GetString("NewSite_ChooseWebTemplate.StepTitle");
ucHeader.Description = GetString("NewSite_ChooseWebTemplate.StepDesc");
break;
case 2:
stepIndex = siteType.SelectTemplate ? 3 : 2;
ucHeader.Header = GetString("NewSite_SiteDetails.StepTitle");
ucHeader.Description = GetString("NewSite_SiteDetails.StepDesc");
break;
case 3:
stepIndex = siteType.SelectTemplate ? 4 : 3;
ucHeader.Header = GetString("ImportPanel.ObjectsSelectionHeader");
ucHeader.Description = GetString("ImportPanel.ObjectsSelectionDescription");
break;
case 4:
stepIndex = siteType.SelectTemplate ? 5 : 4;
ucHeader.Header = GetString("ImportPanel.ObjectsProgressHeader");
ucHeader.Description = GetString("ImportPanel.ObjectsProgressDescription");
break;
case 5:
stepIndex = 5;
ucHeader.Header = GetString("NewSite_ChooseMasterTemplate.StepTitle");
ucHeader.Description = GetString("NewSite_ChooseMasterTemplate.StepDesc");
break;
case 6:
stepIndex = 6;
ucHeader.Header = GetString("NewSite_DefineSiteStructure.StepTitle");
ucHeader.Description = GetString("NewSite_DefineSiteStructure.StepDesc");
break;
case 7:
stepIndex = siteType.SelectTemplate ? 6 : 7;
ucHeader.Header = GetString("NewSite_Finish.StepTitle");
ucHeader.Description = GetString("NewSite_Finish.StepDesc");
break;
}
ucHeader.Title = string.Format(GetString("NewSite_Step"), stepIndex);
}
// Preselect objects
private void SelectObjects(object parameter)
{
ImportSettings.LoadDefaultSelection();
}
private void EnsureDefaultButton()
{
if (wzdImport.ActiveStep != null)
{
switch (wzdImport.ActiveStep.StepType)
{
case WizardStepType.Start:
Page.Form.DefaultButton = wzdImport.FindControl("StartNavigationTemplateContainerID").FindControl("StepNextButton").UniqueID;
break;
case WizardStepType.Step:
Page.Form.DefaultButton = wzdImport.FindControl("StepNavigationTemplateContainerID").FindControl("StepNextButton").UniqueID;
break;
case WizardStepType.Finish:
Page.Form.DefaultButton = wzdImport.FindControl("FinishNavigationTemplateContainerID").FindControl("StepFinishButton").UniqueID;
break;
}
}
}
#endregion
#region "Callback handling"
///
/// Callback event handler.
///
/// Callback argument
public void RaiseCallbackEvent(string argument)
{
// Get arguments
string[] args = argument.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
bool cancel = ValidationHelper.GetBoolean(args[0], false);
int messageLength = 0;
int errorLength = 0;
int warningLength = 0;
string machineName = null;
if (args.Length == 5)
{
messageLength = ValidationHelper.GetInteger(args[1], 0);
errorLength = ValidationHelper.GetInteger(args[2], 0);
warningLength = ValidationHelper.GetInteger(args[3], 0);
machineName = ValidationHelper.GetString(args[4], null);
}
// Check if on same machine
if (machineName == SqlHelperClass.MachineName.ToLowerCSafe())
{
try
{
// Cancel Import
if (cancel)
{
ImportManager.Settings.Cancel();
}
hdnState.Value = ImportManager.Settings.GetLimitedProgressLog(messageLength, errorLength, warningLength);
}
catch (Exception ex)
{
EventLogProvider ev = new EventLogProvider();
ev.LogEvent("NewSiteWizard", "IMPORT", ex);
hdnState.Value = ImportManager.Settings.GetLimitedProgressLog(messageLength, errorLength, warningLength);
}
finally
{
if (ImportManager.Settings.GetProgressState() != LogStatusEnum.Info)
{
// Delete presistent data
PersistentStorageHelper.RemoveValue(PersistentSettingsKey);
}
}
}
}
///
/// Callback result retrieving handler.
///
public string GetCallbackResult()
{
return hdnState.Value;
}
#endregion
}