public void ConfigureServices(IServiceCollection services) { PrometheusMetrics.TryConfigure(Environment.ApplicationName); EventMapping.Map(); var esConnection = ConfigureEsConnection( Configuration["EventStore:ConnectionString"], Environment.ApplicationName); var documentStore = ConfigureRavenDb( Configuration["RavenDb:Server"], Configuration["RavenDb:Database"] ); var ravenDbStore = new RavenDBProvider(documentStore); services.AddSingleton(c => (Func <IAsyncDocumentSession>)GetSession); services.AddSingleton <IHostedService>( new EventStoreService( esConnection, Props.FromProducer(() => new SubscriptionActor( esConnection, new RavenDbCheckpointStore(GetSession, "readmodels"), "ravenDbSubscription", (Props.FromProducer( () => new CustomerVehiclesProjection(ravenDbStore)), "customerVehicles"), (Props.FromProducer( () => new VehicleItemProjection(ravenDbStore)), "vehicleItems") ) ) ) ); IAsyncDocumentSession GetSession() => documentStore.OpenAsyncSession(); }
private static IWorkflowBuilder GetDefaultBuilder(RavenDBProvider provider) { var builder = new WorkflowBuilder<XElement>(provider, new XmlWorkflowParser(), provider ).WithDefaultCache(); return builder; }
private static IWorkflowBuilder GetDefaultBuilder(RavenDBProvider provider) { var builder = new WorkflowBuilder <XElement>(provider, new XmlWorkflowParser(), provider ).WithDefaultCache(); return(builder); }
private WorkflowRuntime CreateRuntimeRavenDB() { var provider = new RavenDBProvider(new Raven.Client.Document.DocumentStore() { Url = Parameters.DBUrl, DefaultDatabase = Parameters.Database }); callbackProvider = new WorkflowCallbackProvider(Parameters, provider); var builder = new WorkflowBuilder <XElement>(callbackProvider, new XmlWorkflowParser(), provider).WithDefaultCache(); return(new WorkflowRuntime(Parameters.RuntimeId) .WithBuilder(builder) .WithPersistenceProvider(provider)); }
public PersistenceProviderContainer() { _provider = new RavenDBProvider(new DocumentStore() { Url = ConfigurationManager.AppSettings["Url"], DefaultDatabase = ConfigurationManager.AppSettings["Database"] }); using (var session = _provider.Store.OpenSession()) { if (session.Query <Business.Model.Role>().Count() == 0) { GenereateDate(session); } } }
private WorkflowRuntime CreateRuntimeRavenDB() { var provider = new RavenDBProvider(new Raven.Client.Document.DocumentStore() { Url = Parameters.DBUrl, DefaultDatabase = Parameters.Database }); callbackProvider = new WorkflowCallbackProvider(Parameters, provider); var builder = new WorkflowBuilder<XElement>(callbackProvider, new XmlWorkflowParser(), provider).WithDefaultCache(); return new WorkflowRuntime(Parameters.RuntimeId) .WithBuilder(builder) .WithPersistenceProvider(provider); }