public static ActionResult PatchDatabase(Session session, Dictionary <string, DatabasePatchInfo[]> featurePatchInfos) { var version = session.GetDetectedOlderVersion(); RunDatabaseAction( session, (featureName) => { if (featurePatchInfos.ContainsKey(featureName)) { var featurePatchInfo = DatabasePatchInfo.Merge(featurePatchInfos[featureName], version); if (featurePatchInfo != null) { DatabaseSetupInfo setupInfo = DatabaseSetupInfo.CreateFromFeature(session, featureName); PatchDatabaseForm patchDatabaseForm = new PatchDatabaseForm(); patchDatabaseForm.SetupInfo = setupInfo; var dialogResult = BaseForm.ShowAsDialog(patchDatabaseForm, session.InstallerWindowWrapper()); if (dialogResult == DialogResult.Cancel) { throw new Exception("Cancelled"); } else { ExecuteDDL(featurePatchInfo.SqlScript, patchDatabaseForm.SetupInfo); RunCustomMethod(featurePatchInfo.PatchAction, patchDatabaseForm.SetupInfo); } } } } ); return(ActionResult.Success); }
public static ActionResult PreDatabaseDialog(Session session) { var featureName = session.GetPropertyValue(DatabaseSetupInfo.FeaturePropertyName); var databaseSetupInfo = DatabaseSetupInfo.CreateFromFeature(session, featureName); if (databaseSetupInfo != null) { databaseSetupInfo.CopyToCurrentDetails(session); } else { DatabaseSetupInfo.SetSuggestedPropertyValues(session, featureName); } return(ActionResult.Success); }
public static ActionResult AfterInstallInitialize_DB(Session session) { RunDatabaseAction( session, (featureName) => { DatabaseSetupInfo databaseSetupInfo = DatabaseSetupInfo.CreateFromFeature(session, featureName); databaseSetupInfo.CopyToCurrentDetails(session); DatabaseSetupInfo.AddRegistryEntries(session, featureName); } ); var aggregatedProps = DatabaseSetupInfo.GetCustomActionData(session).ToString(); session.SetPropertyValue("RollbackDatabase", aggregatedProps); session.SetPropertyValue("DeployDatabase", aggregatedProps); session.SetPropertyValue("RemoveDatabase", aggregatedProps); session.SetPropertyValue("PatchDatabase", aggregatedProps); return(ActionResult.Success); }
public static ActionResult DeployDatabase(Session session, Dictionary <string, string> createDatabaseObjectsSql, Dictionary <string, KeyValuePair <string, string>[]> lookupDataArray, Dictionary <string, Action <SqlConnection> > customMethods = null) { customMethods = customMethods != null ? customMethods : new Dictionary <string, Action <SqlConnection> >(); RunDatabaseAction( session, (featureName) => { DatabaseSetupInfo databaseSetupInfo = DatabaseSetupInfo.CreateFromFeature(session, featureName); if (CreateDatabase(databaseSetupInfo, createDatabaseObjectsSql[featureName], lookupDataArray[featureName])) { ExecuteDDL(createDatabaseObjectsSql[featureName], databaseSetupInfo); InsertLookups(lookupDataArray[featureName], databaseSetupInfo); if (customMethods.ContainsKey(featureName)) { RunCustomMethod(customMethods[featureName], databaseSetupInfo); } } CreateDatabaseUser(databaseSetupInfo, null); } ); return(ActionResult.Success); }
public static ActionResult RemoveDatabase(Session session, bool askUser) { RunDatabaseAction( session, (featureName) => { DatabaseSetupInfo setupInfo = DatabaseSetupInfo.CreateFromFeature(session, featureName); if (!setupInfo.UseExistingDatabase) { DropDatabaseForm dropDatabaseForm = new DropDatabaseForm() { SetupInfo = setupInfo }; if (!askUser || BaseForm.ShowAsDialog(dropDatabaseForm, session.InstallerWindowWrapper()) == DialogResult.Yes) { DropDatabase(setupInfo); DropDatabaseUser(setupInfo); } } } ); return(ActionResult.Success); }