protected override void OnConfiguring(CouchOptionsBuilder optionsBuilder) { optionsBuilder .UseEndpoint("http://localhost:5984/") .OverrideExistingIndexes() .UseBasicAuthentication("admin", "admin"); }
protected override void OnConfiguring(CouchOptionsBuilder optionsBuilder) { optionsBuilder .UseEndpoint("http://localhost:5984/") .EnsureDatabaseExists() .UseBasicAuthentication(username: "******", password: "******"); }
protected CouchContext(CouchOptions options) { Check.NotNull(options, nameof(options)); var optionsBuilder = new CouchOptionsBuilder(options); var databaseBuilder = new CouchDatabaseBuilder(); #pragma warning disable CA2214 // Do not call overridable methods in constructors OnConfiguring(optionsBuilder); OnDatabaseCreating(databaseBuilder); #pragma warning restore CA2214 // Do not call overridable methods in constructors Client = new CouchClient(options); IEnumerable <PropertyInfo> databasePropertyInfos = GetDatabaseProperties(); foreach (PropertyInfo dbProperty in databasePropertyInfos) { Type documentType = dbProperty.PropertyType.GetGenericArguments()[0]; var initDatabasesTask = (Task)InitDatabasesGenericMethod.MakeGenericMethod(documentType) .Invoke(this, new object[] { dbProperty, options }); initDatabasesTask.ConfigureAwait(false).GetAwaiter().GetResult(); var applyDatabaseChangesTask = (Task)ApplyDatabaseChangesGenericMethod.MakeGenericMethod(documentType) .Invoke(this, new object[] { dbProperty, options, databaseBuilder }); applyDatabaseChangesTask.ConfigureAwait(false).GetAwaiter().GetResult(); } }
/// <summary> /// Creates a new CouchDB client. /// </summary> /// <param name="endpoint">URI to the CouchDB endpoint.</param> /// <param name="couchSettingsFunc">A function to configure options.</param> public CouchClient(Uri endpoint, Action <CouchOptionsBuilder>?couchSettingsFunc = null) { var optionsBuilder = new CouchOptionsBuilder(); couchSettingsFunc?.Invoke(optionsBuilder); _options = optionsBuilder.Options; Endpoint = endpoint; _flurlClient = GetConfiguredClient(); }
public static IServiceCollection AddCouchContext <TContext>(this IServiceCollection services, Action <CouchOptionsBuilder <TContext> > optionBuilderAction) where TContext : CouchContext { NotNull(services, nameof(services)); NotNull(optionBuilderAction, nameof(optionBuilderAction)); var builder = new CouchOptionsBuilder <TContext>(); optionBuilderAction?.Invoke(builder); return(services .AddSingleton(builder.Options) .AddSingleton <TContext>()); }
/// <summary> /// Creates a new CouchDB client. /// </summary> /// <param name="couchSettingsFunc">A function to configure options.</param> public CouchClient(Action <CouchOptionsBuilder>?couchSettingsFunc = null) { var optionsBuilder = new CouchOptionsBuilder(); couchSettingsFunc?.Invoke(optionsBuilder); if (optionsBuilder.Options.Endpoint == null) { throw new InvalidOperationException("Database endpoint must be set."); } _options = optionsBuilder.Options; Endpoint = _options.Endpoint; _flurlClient = GetConfiguredClient(); }
protected CouchContext(CouchOptions options) { Check.NotNull(options, nameof(options)); var optionsBuilder = new CouchOptionsBuilder(options); var databaseBuilder = new CouchDatabaseBuilder(); #pragma warning disable CA2214 // Do not call overridable methods in constructors OnConfiguring(optionsBuilder); OnDatabaseCreating(databaseBuilder); #pragma warning restore CA2214 // Do not call overridable methods in constructors Client = new CouchClient(options); SetupDiscriminators(databaseBuilder); InitializeDatabases(options, databaseBuilder); }
public static ContainerBuilder AddCouchContext <TContext>(this ContainerBuilder builder, Action <CouchOptionsBuilder <TContext> > optionBuilderAction) where TContext : CouchContext { Check.NotNull(builder, nameof(builder)); Check.NotNull(optionBuilderAction, nameof(optionBuilderAction)); var optionsBuilder = new CouchOptionsBuilder <TContext>(); optionBuilderAction?.Invoke(optionsBuilder); builder .RegisterInstance(optionsBuilder.Options) .AsSelf(); builder .RegisterType <TContext>() .SingleInstance(); return(builder); }
protected CouchContext(CouchOptions options) { Check.NotNull(options, nameof(options)); var builder = new CouchOptionsBuilder(options); #pragma warning disable CA2214 // Do not call overridable methods in constructors OnConfiguring(builder); #pragma warning restore CA2214 // Do not call overridable methods in constructors Client = new CouchClient(options); PropertyInfo[] databasePropertyInfos = GetDatabaseProperties(); foreach (PropertyInfo propertyInfo in databasePropertyInfos) { Type documentType = propertyInfo.PropertyType.GetGenericArguments()[0]; object?database; if (options.CheckDatabaseExists) { MethodInfo getOrCreateDatabaseMethod = GetOrCreateDatabaseAsyncGenericMethod.MakeGenericMethod(documentType); #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. var parameters = new[] { (object)null, null, default(CancellationToken) }; #pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. var task = (Task)getOrCreateDatabaseMethod.Invoke(Client, parameters); task.ConfigureAwait(false).GetAwaiter().GetResult(); PropertyInfo resultProperty = task.GetType().GetProperty(nameof(Task <object> .Result)); database = resultProperty.GetValue(task); } else { MethodInfo getDatabaseMethod = GetDatabaseGenericMethod.MakeGenericMethod(documentType); database = getDatabaseMethod.Invoke(Client, Array.Empty <object>()); } propertyInfo.SetValue(this, database); } }
protected virtual void OnConfiguring(CouchOptionsBuilder optionsBuilder) { }