/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var configuration = context.Settings.GetOrDefault<Configuration>("NHibernate.Subscriptions.Configuration") ?? context.Settings.GetOrDefault<Configuration>("StorageConfiguration"); if (configuration == null) { var properties = new ConfigureNHibernate(context.Settings).SubscriptionStorageProperties; configuration = new Configuration().SetProperties(properties); } ConfigureNHibernate.ThrowIfRequiredPropertiesAreMissing(configuration.Properties); ConfigureNHibernate.AddMappings<SubscriptionMap>(configuration); context.Container.ConfigureComponent<Unicast.Subscriptions.NHibernate.Installer.Installer>(DependencyLifecycle.SingleInstance) .ConfigureProperty(x => x.Configuration, configuration) .ConfigureProperty(x => x.RunInstaller, RunInstaller(context)); var sessionSource = new SubscriptionStorageSessionProvider(configuration.BuildSessionFactory()); context.Container.RegisterSingleton(sessionSource); if (context.Settings.HasSetting("NHibernate.Subscriptions.CacheExpiration")) { context.Container.RegisterSingleton<ISubscriptionStorage>(new CachedSubscriptionPersister(sessionSource, context.Settings.Get<TimeSpan>("NHibernate.Subscriptions.CacheExpiration"))); } else { context.Container.ConfigureComponent<SubscriptionPersister>(DependencyLifecycle.InstancePerCall); } }
/// <summary> /// Configures the storage with the user supplied persistence configuration /// Azure tables are created if requested by the user /// </summary> /// <param name="config"></param> /// <param name="connectionString"></param> /// <param name="createSchema"></param> /// <returns></returns> public static Configure AzureSubcriptionStorage(this Configure config, string connectionString, bool createSchema) { var cfg = new Configuration() .DataBaseIntegration(x => { x.ConnectionString = connectionString; x.ConnectionProvider <TableStorageConnectionProvider>(); x.Dialect <TableStorageDialect>(); x.Driver <TableStorageDriver>(); }); var mapper = new ModelMapper(); mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes()); HbmMapping faultMappings = mapper.CompileMappingForAllExplicitlyAddedEntities(); cfg.AddMapping(faultMappings); if (createSchema) { new SchemaExport(cfg).Execute(true, true, false); } var sessionSource = new SubscriptionStorageSessionProvider(cfg.BuildSessionFactory()); config.Configurer.RegisterSingleton <ISubscriptionStorageSessionProvider>(sessionSource); config.Configurer.ConfigureComponent <SubscriptionStorage>(DependencyLifecycle.InstancePerCall); return(config); }
/// <summary> /// Configures the storage with the user supplied persistence configuration /// DB schema is updated if requested by the user /// </summary> /// <param name="config"></param> /// <param name="nhibernateProperties"></param> /// <param name="autoUpdateSchema"></param> /// <returns></returns> public static Configure DBSubcriptionStorage(this Configure config, IDictionary <string, string> nhibernateProperties, bool autoUpdateSchema) { var fluentConfiguration = Fluently.Configure(new Configuration().SetProperties(nhibernateProperties)) .Mappings(m => m.FluentMappings.Add(typeof(SubscriptionMap))); var cfg = fluentConfiguration.BuildConfiguration(); if (autoUpdateSchema) { new SchemaUpdate(cfg).Execute(false, true); } //default to LinFu if not specifed by user if (!cfg.Properties.Keys.Contains(PROXY_FACTORY_KEY)) { fluentConfiguration.ExposeConfiguration( x => x.SetProperty(PROXY_FACTORY_KEY, typeof(ProxyFactoryFactory).AssemblyQualifiedName)); } var sessionSource = new SubscriptionStorageSessionProvider(fluentConfiguration.BuildSessionFactory()); config.Configurer.RegisterSingleton <ISubscriptionStorageSessionProvider>(sessionSource); config.Configurer.ConfigureComponent <SubscriptionStorage>(DependencyLifecycle.InstancePerCall); return(config); }
/// <summary> /// Called when the feature should perform its initialization. This call will only happen if the feature is enabled. /// </summary> protected override void Setup(FeatureConfigurationContext context) { var configuration = context.Settings.GetOrDefault <Configuration>("NHibernate.Subscriptions.Configuration") ?? context.Settings.GetOrDefault <Configuration>("StorageConfiguration"); if (configuration == null) { var properties = new ConfigureNHibernate(context.Settings).SubscriptionStorageProperties; configuration = new Configuration().SetProperties(properties); } ConfigureNHibernate.ThrowIfRequiredPropertiesAreMissing(configuration.Properties); ConfigureNHibernate.AddMappings <SubscriptionMap>(configuration); context.Container.ConfigureComponent <Unicast.Subscriptions.NHibernate.Installer.Installer>(DependencyLifecycle.SingleInstance) .ConfigureProperty(x => x.Configuration, configuration) .ConfigureProperty(x => x.RunInstaller, RunInstaller(context)); var sessionSource = new SubscriptionStorageSessionProvider(configuration.BuildSessionFactory()); context.Container.RegisterSingleton(sessionSource); if (context.Settings.HasSetting("NHibernate.Subscriptions.CacheExpiration")) { context.Container.RegisterSingleton <ISubscriptionStorage>(new CachedSubscriptionPersister(sessionSource, context.Settings.Get <TimeSpan>("NHibernate.Subscriptions.CacheExpiration"))); } else { context.Container.ConfigureComponent <SubscriptionPersister>(DependencyLifecycle.InstancePerCall); } }
static Configure UseNHibernateSubscriptionPersisterInternal(this Configure config, Configuration configuration, bool autoUpdateSchema) { ConfigureNHibernate.ThrowIfRequiredPropertiesAreMissing(ConfigureNHibernate.SubscriptionStorageProperties); Unicast.Subscriptions.NHibernate.Installer.Installer.RunInstaller = autoUpdateSchema; ConfigureNHibernate.AddMappings <SubscriptionMap>(configuration); var sessionSource = new SubscriptionStorageSessionProvider(configuration.BuildSessionFactory()); config.Configurer.RegisterSingleton <ISubscriptionStorageSessionProvider>(sessionSource); config.Configurer.ConfigureComponent <SubscriptionStorage>(DependencyLifecycle.InstancePerCall); return(config); }
public void SetupContext() { var cfg = new Configuration() .DataBaseIntegration(x => { x.Dialect<SQLiteDialect>(); x.ConnectionString = string.Format(@"Data Source={0};Version=3;New=True;", Path.GetTempFileName()); }); var mapper = new ModelMapper(); mapper.AddMapping<Config.SubscriptionMap>(); cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities()); new SchemaExport(cfg).Create(false, true); subscriptionStorageSessionProvider = new SubscriptionStorageSessionProvider(cfg.BuildSessionFactory()); storage = new SubscriptionPersister(subscriptionStorageSessionProvider); }
public void SetupContext() { var cfg = new Configuration() .DataBaseIntegration(x => { x.Dialect <SQLiteDialect>(); x.ConnectionString = string.Format(@"Data Source={0};Version=3;New=True;", Path.GetTempFileName()); }); var mapper = new ModelMapper(); mapper.AddMapping <Config.SubscriptionMap>(); cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities()); new SchemaExport(cfg).Create(false, true); subscriptionStorageSessionProvider = new SubscriptionStorageSessionProvider(cfg.BuildSessionFactory()); storage = new SubscriptionPersister(subscriptionStorageSessionProvider); }
/// <summary> /// Configures the storage with the user supplied persistence configuration /// DB schema is updated if requested by the user /// </summary> /// <param name="config"></param> /// <param name="nhibernateProperties"></param> /// <param name="autoUpdateSchema"></param> /// <returns></returns> public static Configure DBSubcriptionStorage(this Configure config, Configuration configuration, bool autoUpdateSchema) { var mapper = new ModelMapper(); mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes()); HbmMapping faultMappings = mapper.CompileMappingForAllExplicitlyAddedEntities(); configuration.AddMapping(faultMappings); if (autoUpdateSchema) { new SchemaUpdate(configuration).Execute(false, true); } var sessionSource = new SubscriptionStorageSessionProvider(configuration.BuildSessionFactory()); config.Configurer.RegisterSingleton <ISubscriptionStorageSessionProvider>(sessionSource); config.Configurer.ConfigureComponent <SubscriptionStorage>(DependencyLifecycle.InstancePerCall); return(config); }
static Configure UseNHibernateSubscriptionPersisterInternal(this Configure config, Configuration configuration, bool autoUpdateSchema) { ConfigureNHibernate.ThrowIfRequiredPropertiesAreMissing(ConfigureNHibernate.SubscriptionStorageProperties); Unicast.Subscriptions.NHibernate.Installer.Installer.RunInstaller = autoUpdateSchema; ConfigureNHibernate.AddMappings<SubscriptionMap>(configuration); var sessionSource = new SubscriptionStorageSessionProvider(configuration.BuildSessionFactory()); config.Configurer.RegisterSingleton<ISubscriptionStorageSessionProvider>(sessionSource); config.Configurer.ConfigureComponent<SubscriptionStorage>(DependencyLifecycle.InstancePerCall); return config; }