public static FluentConfigurationSource UseTopShelf(this FluentConfigurationSource builder, Action<ConfigurationSettings> settingsFactory) { var settings = new ConfigurationSettings(); settingsFactory(settings); return builder.UsingServiceHost<TopShelfHost>(context => { context.SetDescription(settings.Description); context.SetDisplayName(settings.DisplayName); context.SetPassword(settings.Password); context.SetServiceName(settings.ServiceName); context.SetUsername(settings.Username); context.SetUserType(settings.UserType); }); }
private IConfigurationContext MergeConfiguration(IConfigurationContext configuration) { var defaultSettings = new Configuration.ConfigurationSettings(); var configSection = ConfigurationHelper.GetConfigSection <Configuration.ConfigurationSection>(); if (configSection != null) { if (!String.IsNullOrWhiteSpace(configSection.RunAs.UserType)) { switch (configSection.RunAs.UserType.ToUpper()) { case "LOCALSERVICE": configuration.SetUserType(Configuration.RunAs.LocalService); break; case "LOCALSYSTEM": configuration.SetUserType(Configuration.RunAs.LocalSystem); break; case "NETWORKSERVICE": configuration.SetUserType(Configuration.RunAs.NetworkService); break; case "USER": configuration.SetUserType(Configuration.RunAs.User); break; } if (!String.IsNullOrWhiteSpace(configSection.RunAs.Username)) { configuration.SetUsername(configSection.RunAs.Username); } if (!String.IsNullOrWhiteSpace(configSection.RunAs.Password)) { configuration.SetPassword(configSection.RunAs.Password); } } if (!String.IsNullOrWhiteSpace(configSection.Service.Description)) { configuration.SetDescription(configSection.Service.Description); } if (!String.IsNullOrWhiteSpace(configSection.Service.DisplayName)) { configuration.SetDisplayName(configSection.Service.DisplayName); } if (!String.IsNullOrWhiteSpace(configSection.Service.Name)) { configuration.SetServiceName(configSection.Service.Name); } } // Set Defaults if (String.IsNullOrWhiteSpace(configuration.GetServiceName())) { configuration.SetServiceName(configuration.AssemblyLocator.GetEntryAssembly().GetName().Name); } if (String.IsNullOrWhiteSpace(configuration.GetDescription())) { configuration.SetDescription("Wave Service Host"); } if (String.IsNullOrWhiteSpace(configuration.GetDisplayName())) { configuration.SetDisplayName(configuration.AssemblyLocator.GetEntryAssembly().GetName().Name); } return(configuration); }