public static void UseSqlServer( this SerilogUiOptionsBuilder optionsBuilder, string connectionString, string tableName, string schemaName = "dbo" ) { if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentNullException(nameof(connectionString)); } if (string.IsNullOrEmpty(tableName)) { throw new ArgumentNullException(nameof(tableName)); } var relationProvider = new RelationalDbOptions { ConnectionString = connectionString, TableName = tableName, Schema = schemaName }; ((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddSingleton(relationProvider); ((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddScoped <IDataProvider, SqlServerDataProvider>(); }
public static void UseElasticSearchDb(this SerilogUiOptionsBuilder optionsBuilder, Uri endpoint, string indexName) { if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } if (string.IsNullOrEmpty(indexName)) { throw new ArgumentNullException(nameof(indexName)); } var options = new ElasticSearchDbOptions { IndexName = indexName }; var builder = ((ISerilogUiOptionsBuilder)optionsBuilder); builder.Services.AddSingleton(options); var pool = new SingleNodeConnectionPool(endpoint); var connectionSettings = new ConnectionSettings(pool, sourceSerializer: (builtin, values) => new VanillaSerializer()); builder.Services.AddSingleton <IElasticClient>(o => new ElasticClient(connectionSettings)); builder.Services.AddScoped <IDataProvider, ElasticSearchDbDataProvider>(); }
public static IServiceCollection AddSerilogUi(this IServiceCollection services, Action <SerilogUiOptionsBuilder> optionsBuilder) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (optionsBuilder == null) { throw new ArgumentNullException(nameof(optionsBuilder)); } var builder = new SerilogUiOptionsBuilder(services); optionsBuilder.Invoke(builder); var isAuthorizationFilterExist = services.Any(s => s.ServiceType.FullName == typeof(AuthorizationOptions).FullName); if (!isAuthorizationFilterExist) { services.AddScoped <AuthorizationOptions>(); } return(services); }
public static void UseMongoDb( this SerilogUiOptionsBuilder optionsBuilder, string connectionString, string databaseName, string collectionName ) { if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentNullException(nameof(connectionString)); } if (string.IsNullOrEmpty(databaseName)) { throw new ArgumentNullException(nameof(databaseName)); } if (string.IsNullOrEmpty(collectionName)) { throw new ArgumentNullException(nameof(collectionName)); } var mongoProvider = new MongoDbOptions { ConnectionString = connectionString, DatabaseName = databaseName, CollectionName = collectionName }; ((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddSingleton(mongoProvider); ((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddSingleton <IMongoClient>(o => new MongoClient(connectionString)); ((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddScoped <IDataProvider, MongoDbDataProvider>(); }
public static IServiceCollection AddSerilogUi( this IServiceCollection services, IMvcBuilder mvcBuilder, Action <SerilogUiOptionsBuilder> optionsBuilder ) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (optionsBuilder == null) { throw new ArgumentNullException(nameof(optionsBuilder)); } var builder = new SerilogUiOptionsBuilder(services); optionsBuilder.Invoke(builder); var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.StartsWith("Serilog.Ui.Web")).ToList(); foreach (var assembly in assemblies) { if (assembly.FullName.Contains("Views")) { mvcBuilder.PartManager.ApplicationParts.Add(new CompiledRazorAssemblyPart(assembly)); } else { mvcBuilder.PartManager.ApplicationParts.Add(new AssemblyPart(assembly)); var manifestResourceNames = assembly.GetManifestResourceNames(); } } var isAuthorizationFilterExist = services.Any(s => s.ServiceType.FullName == typeof(AuthorizationOptions).FullName); if (!isAuthorizationFilterExist) { services.AddScoped <AuthorizationOptions>(); } services.AddScoped <AuthorizationFilter>(); return(services); }
public static SerilogUiOptionsBuilder EnableAuthorization(this SerilogUiOptionsBuilder optionsBuilder, Action <AuthorizationOptions> options) { if (optionsBuilder == null) { throw new ArgumentNullException(nameof(optionsBuilder)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } var authorizationOptions = new AuthorizationOptions { Enabled = true }; options(authorizationOptions); ((ISerilogUiOptionsBuilder)optionsBuilder).Services.AddSingleton(authorizationOptions); return(optionsBuilder); }