public SqlStateProvider(ISqlStateProviderConfig config, IDbConnectionManager connManager) { EnsureArg.IsNotNull(config); EnsureArg.IsNotNull(connManager); EnsureArg.IsNotNullOrWhiteSpace(config.DbConnectionString); _connManager = connManager; _config = config; _jsonSerializerSettings = ArkDefaultJsonSerializerSettings.Instance; }
public SqlStateProvider(ISqlStateProviderConfig config, IDbConnectionManager connManager) { EnsureArg.IsNotNull(config); EnsureArg.IsNotNull(connManager); _connManager = connManager; _config = config; _jsonSerializerSettings = new JsonSerializerSettings(); _jsonSerializerSettings.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); _jsonSerializerSettings.NullValueHandling = NullValueHandling.Include; _jsonSerializerSettings.TypeNameHandling = TypeNameHandling.None; _jsonSerializerSettings.Converters.Add(new StringEnumConverter()); }
/// <summary> /// Use the SqlStateProvider as StateProvider /// </summary> /// <param name="host">The workerHost</param> /// <param name="config">The config</param> public static void UseSqlStateProvider <TFile, TMetadata, TQueryFilter> (this WorkerHost <TFile, TMetadata, TQueryFilter> host, ISqlStateProviderConfig config) where TFile : class, IResource <TMetadata> where TMetadata : class, IResourceMetadata where TQueryFilter : class, new() { NodaTimeDapperSqlServer.Setup(); Dapper.SqlMapper.AddTypeMap(typeof(DateTime), DbType.DateTime2); Dapper.SqlMapper.AddTypeMap(typeof(DateTime?), DbType.DateTime2); host.UseStateProvider <SqlStateProvider>(r => { r.Container.RegisterSingleton <IDbConnectionManager, ReliableSqlConnectionManager>(); r.Container.RegisterInstance(config); r.OnBeforeStart += () => r.Container.GetInstance <SqlStateProvider>().EnsureTableAreCreated(); }); }