예제 #1
0
 static RepositoryTests()
 {
     Keys = new RepositoryKeys();
     Keys.Add<Entry>(e => e.Slug);
     Keys.Add<Config>(c => c.Site);
     Keys.Add<User>(u => u.Username);
 }
예제 #2
0
        static RepositoryTests()
        {
            Keys = new RepositoryKeys();
            Keys.Add<Entry>(e => e.Slug);
            Keys.Add<Config>(c => c.Site);
            Keys.Add<User>(u => u.Username);

            JsonWorkingFolder = Path.Combine(Path.GetTempPath(), "NBlogIntegrationTests");
        }
예제 #3
0
        public MongoRepository(RepositoryKeys keys, string connectionString, string databaseName)
        {
            _keys             = keys;
            _connectionString = connectionString;
            _databaseName     = databaseName;

            _server = MongoServer.Create(_connectionString);
            _db     = _server.GetDatabase(databaseName);
        }
예제 #4
0
        static RepositoryTests()
        {
            Keys = new RepositoryKeys();
            Keys.Add <Entry>(e => e.Slug);
            Keys.Add <Config>(c => c.Site);
            Keys.Add <User>(u => u.Username);

            JsonWorkingFolder = Path.Combine(Path.GetTempPath(), "NBlogIntegrationTests");
        }
예제 #5
0
        private static IContainer RegisterDependencies()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <ThemeableRazorViewEngine>().As <IViewEngine>().InstancePerLifetimeScope().WithParameter(
                new NamedParameter("tenantSelector", new HttpTenantSelector())
                );

            var repositoryKeys = new RepositoryKeys();

            repositoryKeys.Add <Entry>(e => e.Slug);
            repositoryKeys.Add <Config>(c => c.Site);
            repositoryKeys.Add <User>(u => u.Username);

            builder.RegisterType <JsonRepository>().Named <IRepository>("json").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("tenantSelector", new HttpTenantSelector())
            });

            builder.RegisterType <SqlRepository>().Named <IRepository>("sql").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("connectionString", "Server=.;Trusted_Connection=True;"),
                new NamedParameter("databaseName", "NBlog")
            });

            builder.RegisterType <MongoRepository>().Named <IRepository>("mongo").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("connectionString", "mongodb://localhost"),
                new NamedParameter("databaseName", "nblog")
            });

            builder.RegisterType <AzureBlobRepository>().Named <IRepository>("azure").InstancePerHttpRequest().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("tenantSelector", new HttpTenantSelector())
            });

            builder.RegisterControllers(typeof(ContainerConfig).Assembly)
            .WithParameter(GetResolvedParameterByName <IRepository>(DefaultRepositoryName));
            builder.RegisterModelBinders(Assembly.GetExecutingAssembly());

            builder.RegisterType <ConfigService>().As <IConfigService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>(DefaultRepositoryName));

            builder.RegisterType <EntryService>().As <IEntryService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>(DefaultRepositoryName));

            builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope();
            builder.RegisterType <MessageService>().As <IMessageService>().InstancePerLifetimeScope();
            builder.RegisterType <ThemeService>().As <IThemeService>().InstancePerLifetimeScope();
            builder.RegisterType <CloudService>().As <ICloudService>().InstancePerLifetimeScope();
            builder.RegisterType <Services>().As <IServices>().InstancePerLifetimeScope();

            var container = builder.Build();

            return(container);
        }
예제 #6
0
        public SqlRepository(RepositoryKeys keys, string connectionString, string databaseName)
        {
            _keys = keys;
            _serverConnectionString = connectionString;
            _databaseName           = databaseName;

            AssertValidDatabaseName();

            _db = new Database(GetDatabaseConnectionString(), "System.Data.SqlClient");
        }
예제 #7
0
        public MongoRepository(RepositoryKeys keys, string connectionString, string databaseName)
        {
            _keys             = keys;
            _connectionString = connectionString;
            _databaseName     = databaseName;

            _client = new MongoClient(connectionString);
            _server = _client.GetServer();
            _db     = _server.GetDatabase(databaseName);
        }
예제 #8
0
        public AzureBlobRepository(RepositoryKeys keys, HttpTenantSelector tenantSelector)
        {
            _keys           = keys;
            _tenantSelector = tenantSelector;

            var    storage    = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("AzureBlobRepository.ConnectionString"));
            var    blobClient = storage.CreateCloudBlobClient();
            string name       = GetContainerSafeName(tenantSelector);

            _container = blobClient.GetContainerReference(name);
        }
예제 #9
0
        static RepositoryTests()
        {
            Keys = new RepositoryKeys();
            Keys.Add<Entry>(e => e.Slug);
            Keys.Add<Config>(c => c.Site);
            Keys.Add<User>(u => u.Username);

            JsonWorkingFolder = Path.Combine(Path.GetTempPath(), "NBlogIntegrationTests");

            SqlConnectionString = "Server=.;Trusted_Connection=True;";
            SqlDatabaseName = "NBlogIntegrationTests";

            MongoDatabaseName = "nblog-integration-tests";
            MongoConnectionString = "mongodb://localhost";
        }
예제 #10
0
        static RepositoryTests()
        {
            Keys = new RepositoryKeys();
            Keys.Add <Entry>(e => e.Slug);
            Keys.Add <Config>(c => c.Site);
            Keys.Add <User>(u => u.Username);

            JsonWorkingFolder = Path.Combine(Path.GetTempPath(), "NBlogIntegrationTests");

            SqlConnectionString = "Server=.;Trusted_Connection=True;";
            SqlDatabaseName     = "NBlogIntegrationTests";

            MongoDatabaseName     = "nblog-integration-tests";
            MongoConnectionString = "mongodb://localhost";
        }
예제 #11
0
        protected IContainer RegisterDependencies()
        {
            var dataPath = "~/App_Data/" + ConfigurationManager.AppSettings["NBlog_Site"];

            var builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            builder.RegisterModelBinders(Assembly.GetExecutingAssembly());

            var repositoryKeys = new RepositoryKeys();

            repositoryKeys.Add <Entry>(e => e.Slug);
            repositoryKeys.Add <Config>(c => c.Site);
            repositoryKeys.Add <User>(u => u.Username);

            builder.RegisterType <JsonRepository>().Named <IRepository>("json").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("dataPath", HttpContext.Current.Server.MapPath(dataPath))
            });

            builder.RegisterType <SqlRepository>().Named <IRepository>("sql").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("connectionString", "Server=.;Trusted_Connection=True;"),
                new NamedParameter("databaseName", "NBlog")
            });

            builder.RegisterType <SqlRepository>().Named <IRepository>("mongo").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("connectionString", "mongodb://localhost"),
                new NamedParameter("databaseName", "nblog")
            });

            builder.RegisterType <ConfigService>().As <IConfigService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>("json"));

            builder.RegisterType <EntryService>().As <IEntryService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>("sql"));

            builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope();
            builder.RegisterType <MessageService>().As <IMessageService>().InstancePerLifetimeScope();
            builder.RegisterType <ThemeService>().As <IThemeService>().InstancePerLifetimeScope();
            builder.RegisterType <CloudService>().As <ICloudService>().InstancePerLifetimeScope();
            builder.RegisterType <Services>().As <IServices>().InstancePerLifetimeScope();

            var container = builder.Build();

            return(container);
        }
예제 #12
0
        private static IContainer RegisterDependencies()
        {
            // Get sql database name from initial catalog in the connection string
            var sqlConnectionString        = ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
            var sqlConnectionStringBuilder = new SqlConnectionStringBuilder(sqlConnectionString);
            var sqlDatabaseName            = sqlConnectionStringBuilder.InitialCatalog;

            var builder = new ContainerBuilder();

            builder.RegisterType <ThemeableRazorViewEngine>().As <IViewEngine>().InstancePerLifetimeScope().WithParameter(
                new NamedParameter("tenantSelector", new HttpTenantSelector())
                );

            var repositoryKeys = new RepositoryKeys();

            repositoryKeys.Add <Entry>(e => e.Slug);
            repositoryKeys.Add <About>(a => a.Title);
            repositoryKeys.Add <Config>(c => c.Site);
            repositoryKeys.Add <User>(u => u.Username);
            repositoryKeys.Add <Image>(i => i.FileName);

            builder.RegisterType <JsonRepository>().Named <IRepository>("json").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("tenantSelector", new HttpTenantSelector())
            });

            builder.RegisterType <SqlRepository>().Named <IRepository>("sql").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("connectionString", ConfigurationManager.ConnectionStrings["Sql"].ConnectionString),
                new NamedParameter("databaseName", sqlDatabaseName)
            });

            builder.RegisterType <MongoRepository>().Named <IRepository>("mongo").InstancePerLifetimeScope().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys),
                new NamedParameter("connectionString", "mongodb://localhost"),
                new NamedParameter("databaseName", "nblog")
            });

            builder.RegisterType <AzureBlobRepository>().Named <IRepository>("azureblob").InstancePerRequest().WithParameters(new[] {
                new NamedParameter("keys", repositoryKeys)
            });

            builder.RegisterControllers(typeof(ContainerConfig).Assembly)
            .WithParameter(GetResolvedParameterByName <IRepository>(JsonRepositoryType));
            builder.RegisterModelBinders(Assembly.GetExecutingAssembly());

            builder.RegisterType <ConfigService>().As <IConfigService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>(JsonRepositoryType));

            builder.RegisterType <EntryService>().As <IEntryService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>(JsonRepositoryType));

            builder.RegisterType <AboutService>().As <IAboutService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>(JsonRepositoryType));

            builder.RegisterType <ImageService>().As <IImageService>().InstancePerLifetimeScope()
            .WithParameter(GetResolvedParameterByName <IRepository>(ConfigurationManager.AppSettings["ImagesRepositoryType"]));

            builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope();
            builder.RegisterType <MessageService>().As <IMessageService>().InstancePerLifetimeScope();
            builder.RegisterType <ThemeService>().As <IThemeService>().InstancePerLifetimeScope();
            builder.RegisterType <CloudService>().As <ICloudService>().InstancePerLifetimeScope();
            builder.RegisterType <Services>().As <IServices>().InstancePerLifetimeScope();

            var container = builder.Build();

            return(container);
        }
예제 #13
0
 public AzureBlobRepository(RepositoryKeys keys)
 {
     _keys       = keys;
     _blobClient = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureBlob"].ConnectionString).CreateCloudBlobClient();
 }
예제 #14
0
 public JsonRepository(RepositoryKeys keys, string dataPath)
 {
     _keys     = keys;
     _dataPath = dataPath;
 }
예제 #15
0
 public JsonRepository(RepositoryKeys keys, HttpTenantSelector tenantSelector)
 {
     _keys           = keys;
     _tenantSelector = tenantSelector;
 }