/// <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>(ComponentCallModelEnum.Singlecall); 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, 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; }
public CachedSubscriptionPersister(SubscriptionStorageSessionProvider subscriptionStorageSessionProvider, TimeSpan expiration) : base(subscriptionStorageSessionProvider) { this.expiration = expiration; }
public SubscriptionPersister(SubscriptionStorageSessionProvider subscriptionStorageSessionProvider) { this.subscriptionStorageSessionProvider = subscriptionStorageSessionProvider; }