public static ActionResult AppSearch_WEB(Session session) { RunWebAction( session, featureName => { session.SetPropertyValue(WebInstallationInfo.FeaturePropertyName, featureName); if (session.IsRemoving() || session.IsPatching() || session.IsOlderVersionDetected()) { WebInstallationInfo.CopyRegistryToProperties(session, featureName); WebInstallationInfo webInstallationInfo = WebInstallationInfo.CreateFromCurrentDetails(session); WebInstallationInfo.AddFeatureDetails(session, webInstallationInfo); } else if (session.UiLevel() != InstallUILevel.Full) { bool allowPropNameWithoutFeature = WebInstallationInfo.GetWebFeatureNames(session).Length == 1; WebInstallationInfo webInstallationInfo = WebInstallationInfo.CreateFromCurrentDetails(session, featureName, allowPropNameWithoutFeature); if (ValidateWebProperties(session, webInstallationInfo)) { WebInstallationInfo.AddFeatureDetails(session, webInstallationInfo); } } } ); return(ActionResult.Success); }
static void RunWebAction(Session session, Action <string> func) { foreach (var featureName in WebInstallationInfo.GetWebFeatureNames(session)) { func(featureName); } }
public static void SetSuggestedPropertyValues(Session session, string featureName) { bool createAsWebSite = session.GetBooleanPropertyValue(WebInstallationInfo.Constants.CreateWebsite); string[] propertyNames = createAsWebSite ? new string[] { WebInstallationInfo.Constants.WebsiteName, WebInstallationInfo.Constants.VirtualDirectoryName } : new string[] { WebInstallationInfo.Constants.VirtualDirectoryName }; BaseSetupInfo.SetSuggestedPropertyValues( session, featureName, WebInstallationInfo.GetWebFeatureNames(session), WebInstallationInfo.GetSuggestedWebNames(session), propertyNames ); }