using Autofac.Core; using Cassandra; using Cassandra.Mapping; using JiShe.CollectBus.Cassandra; using JiShe.CollectBus.Cassandra.Mappers; using Microsoft.Extensions.Options; using System.Reflection; using Volo.Abp; using Volo.Abp.Modularity; // ReSharper disable once CheckNamespace namespace Microsoft.Extensions.DependencyInjection { public static class ApplicationInitializationContextExtensions { public static async Task UseCassandra(this ApplicationInitializationContext context) { var service = context.ServiceProvider; var cassandraProvider = service.GetRequiredService(); await cassandraProvider.InitClusterAndSessionAsync(); } } public static class ServiceCollectionExtensions { public static void AddCassandra(this ServiceConfigurationContext context) { context.Services.AddTransient(typeof(ICassandraRepository<,>), typeof(CassandraRepository<,>)); context.Services.AddSingleton(new MappingConfiguration() .Define(new CollectBusMapping())); } } }