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){
}
}
}