Contents of a Sample DAPI.cs File

This section describes the contents of a sample DAPI.cs file:

using System;

using System.Collections;

using System.Collections.Specialized;

using Ensim.WVH;

using Ensim.Services.PowerTools;

using EnsimBackendLib;

namespace Ensim.Services.PowerTools {

/// <summary>

/// Summary description for Class1.

/// </summary>

public class DomsDWiz : PowerTool, IDAPIInterface{

public DomsDWiz(SiteInfo site, PowerToolXMLData data) : base(site, data) {}

public DomsDWiz(SiteInfo site, PowerToolXMLData data, IDictionary instanceData) : base(site, data, instanceData) {}

public void Install() {

instanceData.Add("dbuser", dbuser);

ActionCollection actions = new ActionCollection();

actions += new CreateMSSQLDB();

actions += new UnpackArchive();

PermissionsInfo[] pi = new PermissionsInfo[1];

pi[0] = new PermissionsInfo(this.anonUser, AccessMask.Write | AccessMask.Read | AccessMask.Modify);

actions += new SetPermission(instanceData["install_loc"].ToString(), pi, PermissionActionType.ADD, true);

actions += new CreateWebDir( instanceData["url_path"].ToString(), true, (string)instanceData["ASPNetVersion"] );

///actions += new MoveFile(instanceData["install_loc"].ToString() + "\\release.config", instanceData["install_loc"].ToString() + "\\web.config");

///string origKey, newKey;

///Hashtable ht = new Hashtable();

///origKey = "<add key=\"SiteSqlServer\" value=\"Server=(local);Database=DomsDWiz;uid=;pwd=;\" />";

/*newKey = "<add key=\"SiteSqlServer\" value=\"Server=(local);Database="+ instanceData["dbname"] +";uid="+ instanceData["sqldbuser"] +";pwd="+instanceData["sqldbpass"]+";\" />";

ht.Add(origKey, newKey);

actions += new UpdateFileContent("Web.Config", ht);

ht = null;

ht = new Hashtable();

ht.Add("<username>admin</username>", "<username>" + instanceData["instance_admin"] + "</username>");

ht.Add("<password>admin</password>", "<password>" + instanceData["instance_pass1"] + "</password>");

ht.Add("Info@Acme.com</email>", "Info@Acme.com" + instanceData["instance_admin_email"] + "</email>");

actions += new UpdateFileContent(instanceData["install_loc"].ToString() + "\\Install\\DomsDWiz.install.resources", ht);

Hashtable appendProperties = new Hashtable();

appendProperties.Add("DefaultDoc", ",default.aspx");*/

//actions += new SetDefaultProperties(instanceData["url_path"].ToString(), appendProperties, null);

actions += new RemoveFiles(@"Installer\", @"App_GlobalResources\Locales.Portal.xml.resources", @"App_GlobalResources\Locales.xml.resources");

ExecuteActions(actions, ActionType.INSTALL, true);

}

public void ChangePassword(string username,string newpassword) {

}

public void Reconfigure() {

}

public void Upgrade() {

}

public void Remove() {

ActionCollection actions = new ActionCollection();

actions += new RemoveWebDir( instanceData["url_path"] );

actions += new RemoveToolFiles();

actions += new RemoveMSSQLDB();

ExecuteActions(actions, ActionType.REMOVE, false);

}

public IDictionary GetInstanceConfiguration() {

IDictionary instance_conf = this.DSPFillInstance(new string[] {"dbname", "sqldbuser", "sqldbpass", "username", "url_net", "url_path", "domain_to_path"} );

return instance_conf;

}

public void Export(string datafolderpath) {

}

public void Import(string datafolderpath) {

ActionCollection actions = new ActionCollection();

actions += new ImportMSSQLDB( datafolderpath, instanceData["sqldbuser"].ToString());

//Hashtable appendProperties = new Hashtable();

//appendProperties.Add("DefaultDoc", ",default.aspx");

//actions += new SetDefaultProperties(instanceData["url_path"].ToString(), appendProperties, null);

PermissionsInfo[] pi = new PermissionsInfo[1];

pi[0] = new PermissionsInfo(this.anonUser, AccessMask.Write | AccessMask.Read | AccessMask.Modify);

actions += new SetPermission(instanceData["install_loc"].ToString(), pi, PermissionActionType.ADD, true);

ExecuteActions(actions, ActionType.IMPORT, false);

}

public void HandleASPNetVersionChange(bool Add){

}

}

}