Adapt the RegisterBlueprint to connect with local mongodb
This commit is contained in:
		| @@ -22,43 +22,37 @@ namespace Core.Blueprint.DAL.Mongo.Configuration | |||||||
|         /// <returns>The updated <see cref="IServiceCollection"/> with MongoDB services registered.</returns> |         /// <returns>The updated <see cref="IServiceCollection"/> with MongoDB services registered.</returns> | ||||||
|         public static IServiceCollection AddMongoLayer(this IServiceCollection services, IConfiguration configuration) |         public static IServiceCollection AddMongoLayer(this IServiceCollection services, IConfiguration configuration) | ||||||
|         { |         { | ||||||
|             var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? string.Empty; |             string text = "Local"; | ||||||
|  |  | ||||||
|             services.AddSingleton<IMongoContext, MongoContext>(); |             services.AddSingleton<IMongoContext, MongoContext>(); | ||||||
|  |             string ConnectionString = configuration.GetSection("ConnectionStrings:MongoDB").Value ?? string.Empty; | ||||||
|             var ConnectionString = configuration.GetSection("ConnectionStrings:MongoDB").Value ?? string.Empty; |             string Databasename = configuration.GetSection("MongoDb:DatabaseName").Value ?? string.Empty; | ||||||
|             var Databasename = configuration.GetSection("MongoDb:DatabaseName").Value ?? string.Empty; |             string Audience = text == "Local" | ||||||
|             var Audience = (environment == "Local") |  | ||||||
|                 ? configuration.GetSection("MongoDb:LocalAudience").Value |                 ? configuration.GetSection("MongoDb:LocalAudience").Value | ||||||
|                 : configuration.GetSection("MongoDb:Audience").Value; |                 : configuration.GetSection("MongoDb:Audience").Value; | ||||||
|  |  | ||||||
|             if (string.IsNullOrEmpty(ConnectionString) || string.IsNullOrEmpty(Databasename) || string.IsNullOrEmpty(Audience)) |             if (string.IsNullOrEmpty(ConnectionString) || string.IsNullOrEmpty(Databasename) || string.IsNullOrEmpty(Audience)) | ||||||
|  |             { | ||||||
|                 throw new InvalidOperationException("Mongo connection is not configured correctly."); |                 throw new InvalidOperationException("Mongo connection is not configured correctly."); | ||||||
|  |             } | ||||||
|  |  | ||||||
|             services.Configure<MongoDbSettings>(options => |             services.Configure(delegate (MongoDbSettings options) | ||||||
|             { |             { | ||||||
|                 options.ConnectionString = ConnectionString; |                 options.ConnectionString = ConnectionString; | ||||||
|                 options.Databasename = Databasename; |                 options.Databasename = Databasename; | ||||||
|                 options.Audience = Audience; |                 options.Audience = Audience; | ||||||
|             }); |             }); | ||||||
|  |             services.AddSingleton((Func<IServiceProvider, IMongoClient>)delegate (IServiceProvider serviceProvider) | ||||||
|             services.AddSingleton<IMongoClient>(serviceProvider => |  | ||||||
|             { |             { | ||||||
|                 var settings = serviceProvider.GetRequiredService<IOptions<MongoDbSettings>>().Value; |                 MongoDbSettings value2 = serviceProvider.GetRequiredService<IOptions<MongoDbSettings>>().Value; | ||||||
|                 var mongoClientSettings = MongoClientSettings.FromConnectionString(settings.ConnectionString); |                 MongoClientSettings mongoClientSettings = MongoClientSettings.FromConnectionString(value2.ConnectionString); | ||||||
|                 mongoClientSettings.Credential = MongoCredential.CreateOidcCredential(new AzureIdentityProvider(settings.Audience)); |                 //mongoClientSettings.Credential = MongoCredential.CreateOidcCredential(new AzureIdentityProvider(value2.Audience)); | ||||||
|                 return new MongoClient(mongoClientSettings); |                 return new MongoClient(mongoClientSettings); | ||||||
|             }); |             }); | ||||||
|  |             services.AddSingleton(delegate (IServiceProvider serviceProvider) | ||||||
|             services.AddSingleton<IMongoDatabase>(serviceProvider => |  | ||||||
|             { |             { | ||||||
|                 var settings = serviceProvider.GetRequiredService<IOptions<MongoDbSettings>>().Value; |                 MongoDbSettings value = serviceProvider.GetRequiredService<IOptions<MongoDbSettings>>().Value; | ||||||
|                 var client = serviceProvider.GetRequiredService<IMongoClient>(); |                 return serviceProvider.GetRequiredService<IMongoClient>().GetDatabase(value.Databasename); | ||||||
|                 return client.GetDatabase(settings.Databasename); |  | ||||||
|             }); |             }); | ||||||
|  |             services.AddSingleton((Func<IServiceProvider, IMongoDbSettings>)((IServiceProvider serviceProvider) => serviceProvider.GetRequiredService<IOptions<MongoDbSettings>>().Value)); | ||||||
|             services.AddSingleton<IMongoDbSettings>(serviceProvider => serviceProvider.GetRequiredService<IOptions<MongoDbSettings>>().Value); |  | ||||||
|  |  | ||||||
|             return services; |             return services; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Oscar Morales
					Oscar Morales