public ResourceMongoDbRepository(MongoDbContextProvider mongoDbContextProvider) { if (dbContext == null) { Check.NotEmpty(mongoDbContextProvider.UserDatabaseName, "MongoDb UserDatabaseName"); var client = new MongoClient(mongoDbContextProvider.ConnectionString); dbContext = client.GetDatabase(mongoDbContextProvider.UserDatabaseName); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); //services.Configure<MongoDbContextProvider>(Configuration); services.AddSingleton(new MongoDbContextProvider() { ConnectionString = Configuration["MongoDbContextProvider:ConnectionString"], PolicyDatabaseName = Configuration["MongoDbContextProvider:PolicyDatabaseName"], UserCollectionName = Configuration["MongoDbContextProvider:UserCollectionName"], UserDatabaseName = Configuration["MongoDbContextProvider:UserDatabaseName"] }); MongoDbContextProvider.Setup(); services.AddScoped(typeof(IAccessControlPolicyRepository), typeof(AccessControlPolicyMongoDbRepository)); services.AddScoped(typeof(IPrivacyPolicyRepository), typeof(PrivacyPolicyMongoDbRepository)); services.AddScoped(typeof(IPolicyCombiningRepository), typeof(PolicyCombiningMongoDbRepository)); services.AddScoped(typeof(IPrivacyDomainRepository), typeof(PrivacyDomainMongoDbRepository)); services.AddScoped(typeof(IResourceRepository), typeof(ResourceMongoDbRepository)); services.AddScoped(typeof(ISubjectRepository), typeof(SubjectMongoDbRepository)); services.AddSingleton(typeof(AccessControlService)); services.AddSingleton(typeof(PrivacyService)); services.AddSingleton(typeof(SecurityService)); services.AddSingleton(typeof(ConditionalExpressionService)); var corsBuilder = new CorsPolicyBuilder(); corsBuilder.AllowAnyHeader(); corsBuilder.AllowAnyMethod(); corsBuilder.AllowAnyOrigin(); // For anyone access. corsBuilder.AllowCredentials(); services.AddCors(options => { options.AddPolicy("CorsPolicy", corsBuilder.Build()); }); var pluginFunctionFactory = UserDefinedFunctionFactory.GetInstance(); pluginFunctionFactory.RegisterDefaultFunctions(); var domainFactory = PrivacyDomainPluginFactory.GetInstance(); domainFactory.RegisterDefaultPlugin(); }
private static IContainer SetupContainer() { MongoDbContextProvider.Setup(); var builder = new ContainerBuilder(); builder.RegisterType <AccessControlPolicyMongoDbRepository>().As <IAccessControlPolicyRepository>(); builder.RegisterType <PrivacyPolicyMongoDbRepository>().As <IPrivacyPolicyRepository>(); builder.RegisterType <PolicyCombiningMongoDbRepository>().As <IPolicyCombiningRepository>(); builder.RegisterType <PrivacyDomainMongoDbRepository>().As <IPrivacyDomainRepository>().SingleInstance(); builder.RegisterType <AccessControlPolicyMongoDbRepository>().As <IAccessControlPolicyRepository>(); builder.RegisterType <SubjectMongoDbRepository>().As <ISubjectRepository>(); builder.RegisterType <ResourceMongoDbRepository>().As <IResourceRepository>(); builder.RegisterType <LoggerFactory>().As <ILoggerFactory>().SingleInstance(); builder.RegisterType <Logger <AccessControlService> >().As <ILogger <AccessControlService> >(); builder.RegisterType <Logger <PrivacyService> >().As <ILogger <PrivacyService> >(); builder.RegisterType <Logger <ConditionalExpressionService> >().As <ILogger <ConditionalExpressionService> >(); builder.Register(c => new MongoDbContextProvider() { ConnectionString = "mongodb://localhost:27017", PolicyDatabaseName = "Policy", UserCollectionName = "UserDB", UserDatabaseName = "UserDB" }).SingleInstance(); builder.RegisterType <AccessControlService>().SingleInstance(); builder.RegisterType <PrivacyService>().SingleInstance(); builder.RegisterType <ConditionalExpressionService>().SingleInstance(); builder.RegisterType <SecurityService>().SingleInstance(); var pluginFunctionFactory = UserDefinedFunctionFactory.GetInstance(); pluginFunctionFactory.RegisterDefaultFunctions(); var domainFactory = PrivacyDomainPluginFactory.GetInstance(); domainFactory.RegisterDefaultPlugin(); var container = builder.Build(); return(container); }
public PrivacyDomainMongoDbRepository(MongoDbContextProvider mongoDbContextProvider) : base(mongoDbContextProvider) { _mongoCollection = dbContext.GetCollection <PrivacyDomain>("PrivacyDomain"); _privacyDomains = _mongoCollection.Find(_ => true).ToList(); }
public PrivacyPolicyMongoDbRepository(MongoDbContextProvider mongoDbContextProvider) : base(mongoDbContextProvider) { }
public AccessControlPolicyMongoDbRepository(MongoDbContextProvider mongoDbContextProvider) : base(mongoDbContextProvider) { }
public PolicyCombiningMongoDbRepository(MongoDbContextProvider mongoDbContextProvider) : base(mongoDbContextProvider) { }