From 167a99cf81190bfbca98afc1c7810e1e0ffd7a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 26 Mar 2018 15:46:02 +0300 Subject: [PATCH] Mongodb module enhancements. --- .../Domain/Repositories/MongoDB/MongoDbRepository.cs | 4 ++-- .../Volo/Abp/MongoDB/AbpMongoDbContext.cs | 6 +++--- .../DependencyInjection/MongoDbRepositoryRegistrar.cs | 2 +- .../Volo/Abp/MongoDB/IAbpMongoDbContext.cs | 11 +++++++++++ .../Volo/Abp/MongoDB/IMongoDatabaseProvider.cs | 2 +- .../Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs | 2 +- .../Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs | 2 +- 7 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 2a76f7f177..ba788d2498 100644 --- a/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -10,7 +10,7 @@ using Volo.Abp.MongoDB; namespace Volo.Abp.Domain.Repositories.MongoDB { public class MongoDbRepository : RepositoryBase, IMongoDbRepository - where TMongoDbContext : AbpMongoDbContext + where TMongoDbContext : IAbpMongoDbContext where TEntity : class, IEntity { public virtual string CollectionName => DatabaseProvider.DbContext.GetCollectionName(); @@ -82,7 +82,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB } public class MongoDbRepository : MongoDbRepository, IMongoDbRepository - where TMongoDbContext : AbpMongoDbContext + where TMongoDbContext : IAbpMongoDbContext where TEntity : class, IEntity { public MongoDbRepository(IMongoDatabaseProvider databaseProvider) diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs index 841b8ca264..1ca2ae98fd 100644 --- a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs +++ b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs @@ -4,7 +4,7 @@ using System.Linq; namespace Volo.Abp.MongoDB { - public abstract class AbpMongoDbContext + public abstract class AbpMongoDbContext : IAbpMongoDbContext { private static readonly MongoEntityMapping[] EmptyTypeList = new MongoEntityMapping[0]; @@ -23,12 +23,12 @@ namespace Volo.Abp.MongoDB return EmptyTypeList; } - public string GetCollectionName() + public virtual string GetCollectionName() { return GetMapping().CollectionName; } - private MongoEntityMapping GetMapping() + protected virtual MongoEntityMapping GetMapping() { var mapping = _mappingsByType.Value.GetOrDefault(typeof(T)); if (mapping == null) diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/MongoDbRepositoryRegistrar.cs b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/MongoDbRepositoryRegistrar.cs index 362f2bdb31..5aa002362a 100644 --- a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/MongoDbRepositoryRegistrar.cs +++ b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/MongoDbRepositoryRegistrar.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.MongoDB.DependencyInjection protected override IEnumerable GetEntityTypes(Type dbContextType) { - var mongoDbContext = (AbpMongoDbContext)Activator.CreateInstance(dbContextType); + var mongoDbContext = (IAbpMongoDbContext)Activator.CreateInstance(dbContextType); return mongoDbContext.GetMappings().Select(m => m.EntityType); } diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs new file mode 100644 index 0000000000..eb26082356 --- /dev/null +++ b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace Volo.Abp.MongoDB +{ + public interface IAbpMongoDbContext + { + IReadOnlyList GetMappings(); + + string GetCollectionName(); + } +} \ No newline at end of file diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IMongoDatabaseProvider.cs b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IMongoDatabaseProvider.cs index 71d5df8cf9..e083f4786b 100644 --- a/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IMongoDatabaseProvider.cs +++ b/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IMongoDatabaseProvider.cs @@ -3,7 +3,7 @@ namespace Volo.Abp.MongoDB { public interface IMongoDatabaseProvider - where TMongoDbContext : AbpMongoDbContext + where TMongoDbContext : IAbpMongoDbContext { TMongoDbContext DbContext { get; } diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs b/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs index 1d19b490d5..01186c040b 100644 --- a/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs +++ b/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs @@ -2,7 +2,7 @@ namespace Volo.Abp.Uow.MongoDB { - public class MongoDbDatabaseApi: IDatabaseApi + public class MongoDbDatabaseApi : IDatabaseApi { public IMongoDatabase Database { get; } diff --git a/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs b/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs index e1e79ee25d..86d9a4785a 100644 --- a/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs +++ b/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs @@ -5,7 +5,7 @@ using Volo.Abp.MongoDB; namespace Volo.Abp.Uow.MongoDB { public class UnitOfWorkMongoDatabaseProvider : IMongoDatabaseProvider - where TMongoDbContext : AbpMongoDbContext + where TMongoDbContext : IAbpMongoDbContext { public TMongoDbContext DbContext { get; }