public void MethodArgumentsTest() { var provider = new SettingsProvider(); var settings = new TestSettings() { Test = "Test1" }; AssertHelper.ExpectedException<ArgumentNullException>(() => provider.SaveSettings(testSettingsPath, null)); AssertHelper.ExpectedException<ArgumentException>(() => provider.SaveSettings(null, settings)); AssertHelper.ExpectedException<ArgumentException>(() => provider.SaveSettings("MockSettings.xml", settings)); AssertHelper.ExpectedException<ArgumentException>(() => provider.LoadSettings<TestSettings>(null)); AssertHelper.ExpectedException<ArgumentException>(() => provider.LoadSettings<TestSettings>("MockSettings.xml")); }
public void LoadSettings_NoSolutionOpen_NullFileSystemAndNullConfigFileAndNullMachineSettingsUsed() { fileSystemUsedToLoadSettings = new FakeFileSystem(); configFileUsedToLoadSettings = "configFile"; ISettings settings = settingsProvider.LoadSettings(); Assert.IsNull(fileSystemUsedToLoadSettings); Assert.IsNull(configFileUsedToLoadSettings); Assert.IsNull(machinesettingsUsedToLoadSettings); Assert.AreEqual(fakeSettings, settings); }
public void MethodArgumentsTest() { var provider = new SettingsProvider(); var settings = new TestSettings() { Test = "Test1" }; AssertHelper.ExpectedException <ArgumentNullException>(() => provider.SaveSettings(testSettingsPath, null)); AssertHelper.ExpectedException <ArgumentException>(() => provider.SaveSettings(null, settings)); AssertHelper.ExpectedException <ArgumentException>(() => provider.SaveSettings("MockSettings.xml", settings)); AssertHelper.ExpectedException <ArgumentException>(() => provider.LoadSettings <TestSettings>(null)); AssertHelper.ExpectedException <ArgumentException>(() => provider.LoadSettings <TestSettings>("MockSettings.xml")); }
public void BasicSaveAndLoadTest() { var provider = new SettingsProvider(); var defaultSettings = provider.LoadSettings<TestSettings>(testSettingsPath); Assert.AreEqual("Default", defaultSettings.Test); var settings1 = new TestSettings() { Test = "Test1" }; provider.SaveSettings(testSettingsPath, settings1); var settings2 = provider.LoadSettings<TestSettings>(testSettingsPath); Assert.AreNotEqual(settings1, settings2); Assert.AreEqual(settings1.Test, settings2.Test); }
static void Main(string[] args) { try { SettingsProvider settingsProvider = new SettingsProvider(); Settings settings = settingsProvider.LoadSettings(); ICrawler crawler = new HSCrawler(settings); IProfileCrawler profileCrawler = new MALProfileCrawler(settings.UpdateProfile); IntializeDriver(settings); driver.Url = settings.ProfileURL; ICollection <Anime> animes = profileCrawler.GetAnimes(driver, settings.DestinationFolder); crawler.DownloadAnimes(driver, animes); settingsProvider.SaveSettings(settings); } catch (Exception e) { Console.WriteLine(e.Message); } finally { System.Threading.Thread.Sleep(waitTimeMS); if (null != driver) { driver.Quit(); } Environment.Exit(0); } }
private void Load(SettingsLocation?location) { ClearError(); if (!location.HasValue) { return; } Settings settings; try { settings = SettingsProvider.LoadSettings(location.Value); } catch (Exception ex) { LogHelper.LogError(ex); ShowError($"Error loading {location.Value} settings, exception logged"); return; } if (settings == null) { ShowError($"No {location.Value} settings found"); return; } ApplySettings(settings); }
private Settings LoadSettingsForUser(string sid) { if (sid == null) { return(_settingsProvider.LoadSettings(SettingsLocation.System)); } return(_settingsProvider.LoadSettingsForUser(sid)); }
public void BasicSaveAndLoadTest() { var provider = new SettingsProvider(); var defaultSettings = provider.LoadSettings <TestSettings>(testSettingsPath); Assert.AreEqual("Default", defaultSettings.Test); var settings1 = new TestSettings() { Test = "Test1" }; provider.SaveSettings(testSettingsPath, settings1); var settings2 = provider.LoadSettings <TestSettings>(testSettingsPath); Assert.AreNotEqual(settings1, settings2); Assert.AreEqual(settings1.Test, settings2.Test); }
public static void Main(string[] args) { int port = SettingsProvider.LoadSettings().Port; var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup <Startup>() .UseUrls("http://localhost:" + port) .Build(); host.Run(); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddSingleton <ISecurity>(new SecurityProvider()); services.AddSingleton <ISettings>(SettingsProvider.LoadSettings()); services.AddSingleton <IDatabase>(new LiteDbProvider()); //Set Admin policy services.AddAuthorization(o => { o.AddPolicy(UserRoles.Admin, p => p.AddRequirements(new HasRoleRequirement(UserRoles.Admin))); }); //Set MVC with default lockdown services.AddMvc( config => { var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); config.Filters.Add(new AuthorizeFilter(policy)); } ); }
public static void AddSharedCore <TS>(this IServiceCollection services, bool addUIServices = false) { var settings = SettingsProvider.LoadSettings(); var environment = System.Environment.GetEnvironmentVariable("PUBCRAWL_ENVIRONMENT"); if (string.IsNullOrWhiteSpace(environment)) { environment = "default"; } services.Configure <RouteOptions>(options => options.LowercaseUrls = true); services.AddLogging(configure => { configure.AddConsole(); if (!environment.Equals("default", StringComparison.OrdinalIgnoreCase)) { // We use the log path /var/log/koasta-{environment}.log on Linux, as we use a Linux-based AMI in AWS which // automatically publishes logs to CloudWatch on our behalf at this file location. var logPath = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? $"/var/log/koasta-{environment}.log" : Path.Join(System.Environment.CurrentDirectory, $"koasta-{environment}.log"); configure.AddFile(logPath, fileOptions => { fileOptions.Append = true; fileOptions.FileSizeLimitBytes = 1024 * 1024 * 10; // 10 megabytes fileOptions.MaxRollingFiles = 5; }); } }) .Configure <LoggerFilterOptions>(options => options.MinLevel = settings.Meta.Debug ? LogLevel.Debug : LogLevel.Information); services.AddMvc(); services.AddSingleton(typeof(ISettings), settings); services.AddSingleton <IEnvironment, Koasta.Shared.Configuration.Environment>(); services.AddSingleton(typeof(CompanyRepository)); services.AddSingleton(typeof(EmployeeRepository)); services.AddSingleton(typeof(EmployeeRoleRepository)); services.AddSingleton(typeof(EmployeeSessionRepository)); services.AddSingleton(typeof(UserRepository)); services.AddSingleton(typeof(UserSessionRepository)); services.AddSingleton(typeof(MenuRepository)); services.AddSingleton(typeof(MenuItemRepository)); services.AddSingleton(typeof(OrderRepository)); services.AddSingleton(typeof(OrderLineRepository)); services.AddSingleton(typeof(ProductRepository)); services.AddSingleton(typeof(ProductTypeRepository)); services.AddSingleton(typeof(VenueRepository)); services.AddSingleton(typeof(ReviewRepository)); services.AddSingleton(typeof(SubscriptionPackageRepository)); services.AddSingleton(typeof(SubscriptionPlanRepository)); services.AddSingleton(typeof(ImageRepository)); services.AddSingleton(typeof(TagRepository)); services.AddSingleton(typeof(DeviceRepository)); services.AddSingleton(typeof(TokenRepository)); services.AddSingleton(typeof(MediaRepository)); services.AddSingleton(typeof(DocumentRepository)); services.AddSingleton(typeof(VenueDocumentRepository)); services.AddSingleton(typeof(FeatureFlagRepository)); services.AddSingleton(typeof(VenueOpeningTimeRepository)); services.AddSingleton <IKeyStoreHelper, KeyStoreHelper>(); if (settings.Connection.StubMessaging) { services.AddSingleton(typeof(IMessagePublisher), typeof(StubMessagePublisher)); } else { services.AddSingleton(typeof(IMessagePublisher), typeof(RabbitMQMessagePublisher)); } if (settings.Connection.StubBilling) { services.AddSingleton(typeof(IBillingManager), typeof(StubBillingManager)); } else { services.AddSingleton(typeof(IBillingManager), typeof(BillingManager)); } services.AddSingleton(typeof(Constants)); services.AddSingleton(typeof(AnalyticsRepository)); services.AddSingleton <ICryptoHelper, CryptoHelper>(); var startupType = new StartupType { Type = typeof(TS) }; services.AddSingleton(typeof(StartupType), startupType); services.AddHealthChecks().AddNpgSql(settings.Connection.DatabaseConnectionString); if (settings.Meta.RequiresMessageQueue && !settings.Connection.StubMessaging) { string rabbitmqconnection = $"amqp://{HttpUtility.UrlEncode(settings.Connection.RabbitMQUsername)}:{ HttpUtility.UrlEncode(settings.Connection.RabbitMQPassword)}@{settings.Connection.RabbitMQHostname}:5672"; services .AddHealthChecks() .AddRabbitMQ(rabbitConnectionString: rabbitmqconnection); } if (addUIServices && !environment.Equals("default", StringComparison.OrdinalIgnoreCase)) { services.AddDataProtection() .SetApplicationName($"koasta{environment}") .PersistKeysToAWSSystemsManager("/Koasta/DataProtection"); } if (!string.IsNullOrWhiteSpace(settings.Connection.MemcachedUrl)) { services.AddEnyimMemcached(options => options.AddServer(settings.Connection.MemcachedUrl, 11211)); } }
public static void AddShared <TS>(this IServiceCollection services) { AddSharedCore <TS>(services); var settings = SettingsProvider.LoadSettings(); services.AddMvc(options => { if (settings.Meta.Debug) { options.Filters.Add(new BadRequestDebugMiddleware()); } }); services.AddSingleton(typeof(ApiWarmer)); services.AddScoped <AuthorisationMiddleware>(); services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "Koasta API", Version = "v1" }); options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "Employee Authorization header using the Bearer scheme. Example: \"bearer {token}\"", In = ParameterLocation.Header, Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); options.AddSecurityDefinition("API Key", new OpenApiSecurityScheme { Description = "Employee API key", In = ParameterLocation.Header, Name = "x-api-key", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new List <string>() }, { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "API Key" }, Scheme = "oauth2", Name = "API Key", In = ParameterLocation.Header, }, new List <string>() } }); }); }