Implemented feature management mongodb integration

pull/877/head
Halil ibrahim Kalkan 7 years ago
parent 287f71d805
commit b3370082b9

@ -14,9 +14,9 @@ namespace Volo.Abp.FeatureManagement.MongoDB
{ {
context.Services.AddMongoDbContext<FeatureManagementMongoDbContext>(options => context.Services.AddMongoDbContext<FeatureManagementMongoDbContext>(options =>
{ {
/* Add custom repositories here. Example: options.AddDefaultRepositories<IFeatureManagementMongoDbContext>();
* options.AddRepository<Question, MongoQuestionRepository>();
*/ options.AddRepository<FeatureValue, MongoFeatureValueRepository>();
}); });
} }
} }

@ -1,4 +1,5 @@
using Volo.Abp.Data; using MongoDB.Driver;
using Volo.Abp.Data;
using Volo.Abp.MongoDB; using Volo.Abp.MongoDB;
namespace Volo.Abp.FeatureManagement.MongoDB namespace Volo.Abp.FeatureManagement.MongoDB
@ -8,6 +9,8 @@ namespace Volo.Abp.FeatureManagement.MongoDB
{ {
public static string CollectionPrefix { get; set; } = FeatureManagementConsts.DefaultDbTablePrefix; public static string CollectionPrefix { get; set; } = FeatureManagementConsts.DefaultDbTablePrefix;
public IMongoCollection<FeatureValue> FeatureValues => Collection<FeatureValue>();
protected override void CreateModel(IMongoModelBuilder modelBuilder) protected override void CreateModel(IMongoModelBuilder modelBuilder)
{ {
base.CreateModel(modelBuilder); base.CreateModel(modelBuilder);

@ -14,6 +14,11 @@ namespace Volo.Abp.FeatureManagement.MongoDB
var options = new FeatureManagementMongoModelBuilderConfigurationOptions(); var options = new FeatureManagementMongoModelBuilderConfigurationOptions();
optionsAction?.Invoke(options); optionsAction?.Invoke(options);
builder.Entity<FeatureValue>(b =>
{
b.CollectionName = options.CollectionPrefix + "FeatureValues";
});
} }
} }
} }

@ -1,4 +1,5 @@
using Volo.Abp.Data; using MongoDB.Driver;
using Volo.Abp.Data;
using Volo.Abp.MongoDB; using Volo.Abp.MongoDB;
namespace Volo.Abp.FeatureManagement.MongoDB namespace Volo.Abp.FeatureManagement.MongoDB
@ -6,6 +7,6 @@ namespace Volo.Abp.FeatureManagement.MongoDB
[ConnectionStringName("AbpFeatureManagement")] [ConnectionStringName("AbpFeatureManagement")]
public interface IFeatureManagementMongoDbContext : IAbpMongoDbContext public interface IFeatureManagementMongoDbContext : IAbpMongoDbContext
{ {
IMongoCollection<FeatureValue> FeatureValues { get; }
} }
} }

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using Volo.Abp.Domain.Repositories.MongoDB;
using Volo.Abp.MongoDB;
namespace Volo.Abp.FeatureManagement.MongoDB
{
public class MongoFeatureValueRepository : MongoDbRepository<IFeatureManagementMongoDbContext, FeatureValue, Guid>, IFeatureValueRepository
{
public MongoFeatureValueRepository(IMongoDbContextProvider<IFeatureManagementMongoDbContext> dbContextProvider)
: base(dbContextProvider)
{
}
public async Task<FeatureValue> FindAsync(string name, string providerName, string providerKey)
{
return await GetMongoQueryable()
.FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey);
}
public async Task<List<FeatureValue>> GetListAsync(string providerName, string providerKey)
{
return await GetMongoQueryable()
.Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey)
.ToListAsync();
}
}
}

@ -3,7 +3,7 @@ using Volo.Abp.MongoDB;
namespace Volo.Abp.SettingManagement.MongoDB namespace Volo.Abp.SettingManagement.MongoDB
{ {
public static class AbpSettingManagementMongoDbContextExtensions public static class SettingManagementMongoDbContextExtensions
{ {
public static void ConfigureSettingManagement( public static void ConfigureSettingManagement(
this IMongoModelBuilder builder, this IMongoModelBuilder builder,
Loading…
Cancel
Save