Initial project's source code check-in.

This commit is contained in:
ptsurbeleu 2011-07-13 16:07:32 -07:00
commit b03b0b373f
4573 changed files with 981205 additions and 0 deletions

View file

@ -0,0 +1,285 @@
// Copyright (c) 2011, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.IO;
using System.Xml;
using System.Configuration;
using System.Windows.Forms;
using System.Collections;
using System.Text;
using WebsitePanel.Setup.Actions;
namespace WebsitePanel.Setup
{
public class Portal : BaseSetup
{
public static object Install(object obj)
{
return InstallBase(obj, "1.0.1");
}
internal static object InstallBase(object obj, string minimalInstallerVersion)
{
Hashtable args = Utils.GetSetupParameters(obj);
//check CS version
var shellMode = Utils.GetStringSetupParameter(args, Global.Parameters.ShellMode);
var version = new Version(Utils.GetStringSetupParameter(args, Global.Parameters.ShellVersion));
var setupVariables = new SetupVariables
{
SetupAction = SetupActions.Install,
ConfigurationFile = "web.config",
WebSiteIP = Global.WebPortal.DefaultIP, //empty - to detect IP
WebSitePort = Global.WebPortal.DefaultPort,
WebSiteDomain = String.Empty,
NewWebSite = true,
NewVirtualDirectory = false,
EnterpriseServerURL = Global.WebPortal.DefaultEntServURL
};
//
InitInstall(args, setupVariables);
//
var wam = new WebPortalActionManager(setupVariables);
//
wam.PrepareDistributiveDefaults();
//
if (shellMode.Equals(Global.SilentInstallerShell, StringComparison.OrdinalIgnoreCase))
{
if (version < new Version(minimalInstallerVersion))
{
Utils.ShowConsoleErrorMessage(Global.Messages.InstallerVersionIsObsolete, minimalInstallerVersion);
//
return false;
}
try
{
var success = true;
//
setupVariables.EnterpriseServerURL = Utils.GetStringSetupParameter(args, Global.Parameters.EnterpriseServerUrl);
//
wam.ActionError += new EventHandler<ActionErrorEventArgs>((object sender, ActionErrorEventArgs e) =>
{
Utils.ShowConsoleErrorMessage(e.ErrorMessage);
//
Log.WriteError(e.ErrorMessage);
//
success = false;
});
//
wam.Start();
//
return success;
}
catch (Exception ex)
{
Log.WriteError("Failed to install the component", ex);
//
return false;
}
}
else
{
if (version < new Version(minimalInstallerVersion))
{
//
MessageBox.Show(String.Format(Global.Messages.InstallerVersionIsObsolete, minimalInstallerVersion), "Setup Wizard", MessageBoxButtons.OK, MessageBoxIcon.Warning);
//
return DialogResult.Cancel;
}
//
InstallerForm form = new InstallerForm();
Wizard wizard = form.Wizard;
wizard.SetupVariables = setupVariables;
wizard.ActionManager = wam;
//Unattended setup
LoadSetupVariablesFromSetupXml(wizard.SetupVariables.SetupXml, wizard.SetupVariables);
//create wizard pages
var introPage = new IntroductionPage();
var licPage = new LicenseAgreementPage();
var page1 = new ConfigurationCheckPage();
ConfigurationCheck check1 = new ConfigurationCheck(CheckTypes.OperationSystem, "Operating System Requirement");
ConfigurationCheck check2 = new ConfigurationCheck(CheckTypes.IISVersion, "IIS Requirement");
ConfigurationCheck check3 = new ConfigurationCheck(CheckTypes.ASPNET, "ASP.NET Requirement");
page1.Checks.AddRange(new ConfigurationCheck[] { check1, check2, check3 });
var page2 = new InstallFolderPage();
var page3 = new WebPage();
var page4 = new UserAccountPage();
var page5 = new UrlPage();
var page6 = new ExpressInstallPage2();
var page7 = new FinishPage();
wizard.Controls.AddRange(new Control[] { introPage, licPage, page1, page2, page3, page4, page5, page6, page7 });
wizard.LinkPages();
wizard.SelectedPage = introPage;
//show wizard
IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window;
return form.ShowModal(owner);
}
}
public static DialogResult Uninstall(object obj)
{
Hashtable args = Utils.GetSetupParameters(obj);
string shellVersion = Utils.GetStringSetupParameter(args, Global.Parameters.ShellVersion);
//
var setupVariables = new SetupVariables
{
ComponentId = Utils.GetStringSetupParameter(args, Global.Parameters.ComponentId),
IISVersion = Global.IISVersion,
SetupAction = SetupActions.Uninstall
};
//
AppConfig.LoadConfiguration();
InstallerForm form = new InstallerForm();
Wizard wizard = form.Wizard;
wizard.SetupVariables = setupVariables;
//
AppConfig.LoadComponentSettings(wizard.SetupVariables);
//
IntroductionPage page1 = new IntroductionPage();
ConfirmUninstallPage page2 = new ConfirmUninstallPage();
UninstallPage page3 = new UninstallPage();
//create uninstall currentScenario
InstallAction action = new InstallAction(ActionTypes.DeleteShortcuts);
action.Description = "Deleting shortcuts...";
action.Log = "- Delete shortcuts";
action.Name = "Login to WebsitePanel.url";
page3.Actions.Add(action);
page2.UninstallPage = page3;
FinishPage page4 = new FinishPage();
wizard.Controls.AddRange(new Control[] { page1, page2, page3, page4 });
wizard.LinkPages();
wizard.SelectedPage = page1;
//show wizard
IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window;
return form.ShowModal(owner);
}
public static DialogResult Setup(object obj)
{
Hashtable args = Utils.GetSetupParameters(obj);
string shellVersion = Utils.GetStringSetupParameter(args, Global.Parameters.ShellVersion);
//
var setupVariables = new SetupVariables
{
ComponentId = Utils.GetStringSetupParameter(args, Global.Parameters.ComponentId),
SetupAction = SetupActions.Setup,
IISVersion = Global.IISVersion
};
//
AppConfig.LoadConfiguration();
InstallerForm form = new InstallerForm();
Wizard wizard = form.Wizard;
wizard.SetupVariables = setupVariables;
//
AppConfig.LoadComponentSettings(wizard.SetupVariables);
WebPage page1 = new WebPage();
UrlPage page2 = new UrlPage();
ExpressInstallPage page3 = new ExpressInstallPage();
//create install currentScenario
InstallAction action = new InstallAction(ActionTypes.UpdateWebSite);
action.Description = "Updating web site...";
page3.Actions.Add(action);
action = new InstallAction(ActionTypes.UpdateEnterpriseServerUrl);
action.Description = "Updating site settings...";
page3.Actions.Add(action);
action = new InstallAction(ActionTypes.UpdateConfig);
action.Description = "Updating system configuration...";
page3.Actions.Add(action);
FinishPage page4 = new FinishPage();
wizard.Controls.AddRange(new Control[] { page1, page2, page3, page4 });
wizard.LinkPages();
wizard.SelectedPage = page1;
//show wizard
IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window;
return form.ShowModal(owner);
}
public static DialogResult Update(object obj)
{
Hashtable args = Utils.GetSetupParameters(obj);
var setupVariables = new SetupVariables
{
ComponentId = Utils.GetStringSetupParameter(args, Global.Parameters.ComponentId),
SetupAction = SetupActions.Update,
IISVersion = Global.IISVersion
};
AppConfig.LoadConfiguration();
InstallerForm form = new InstallerForm();
Wizard wizard = form.Wizard;
wizard.SetupVariables = setupVariables;
//
AppConfig.LoadComponentSettings(wizard.SetupVariables);
//
IntroductionPage introPage = new IntroductionPage();
LicenseAgreementPage licPage = new LicenseAgreementPage();
ExpressInstallPage page2 = new ExpressInstallPage();
//create install currentScenario
InstallAction action = new InstallAction(ActionTypes.Backup);
action.Description = "Backing up...";
page2.Actions.Add(action);
action = new InstallAction(ActionTypes.DeleteFiles);
action.Description = "Deleting files...";
action.Path = "setup\\delete.txt";
page2.Actions.Add(action);
action = new InstallAction(ActionTypes.CopyFiles);
action.Description = "Copying files...";
page2.Actions.Add(action);
action = new InstallAction(ActionTypes.UpdateConfig);
action.Description = "Updating system configuration...";
page2.Actions.Add(action);
FinishPage page3 = new FinishPage();
wizard.Controls.AddRange(new Control[] { introPage, licPage, page2, page3 });
wizard.LinkPages();
wizard.SelectedPage = introPage;
//show wizard
IWin32Window owner = args[Global.Parameters.ParentForm] as IWin32Window;
return form.ShowModal(owner);
}
}
}