public static async Task Main(string[] args) { var eventStore = new JsonFileEventStore("ExampleEvents.zip", 100); IDocumentStore documentStore = BuildDocumentStore(); var dispatcher = new Dispatcher(eventStore.Subscribe); IStartableModule module = null; IWebHostBuilder hostBuilder = WebHost .CreateDefaultBuilder(args) .UseUrls("http://*:9000") .ConfigureServices(services => { }) .Configure(appBuilder => { module = appBuilder.UseDocumentStatisticsModule(documentStore, dispatcher); }); using (var host = hostBuilder.Build()) { host.Start(); await module.Start(); Console.WriteLine("The statistics module is running. "); Console.WriteLine($"Try http://localhost:9000/Statistics/CountsPerState?country=6df7e2ac-6f06-420a-a0b5-14fb3865e850&kind=permit"); Console.WriteLine($"Examine the Raven DB at http://localhost:9001"); Console.ReadLine(); } }
public static void Main(string[] args) { var container = TinyIoCContainer.Current; string executionFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var eventStore = new JsonFileEventStore(Path.Combine(executionFolder, "ExampleEvents.zip"), 100); IDocumentStore store = BuildDocumentStore(".\\", 9001); container.Register <Func <IAsyncDocumentSession> >(() => store.OpenAsyncSession()); var dispatcher = new Dispatcher(eventStore.Subscribe); var bootstrapper = new CountsProjector(dispatcher, store.OpenAsyncSession); var startOptions = new StartOptions($"http://localhost:9000"); using (WebApp.Start(startOptions, builder => builder.UseControllers(container))) { bootstrapper.Start().Wait(); Console.WriteLine($"HTTP API is available at http://localhost:9000/api/Statistics/CountsPerState?country=f57835c6-a818-49c0-bcb5-ab770243bb7a&kind=Permit"); Console.WriteLine($"Management Studio available at http://localhost:9001"); Console.ReadLine(); } }
public static async Task Main(string[] args) { IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); webBuilder.UseUrls("http://*:9000"); webBuilder.ConfigureServices(sc => { var eventStore = new JsonFileEventStore("ExampleEvents.zip", 100); var dispatcher = new Dispatcher(eventStore.Subscribe); sc.AddSingleton(dispatcher); sc.AddSingleton <IDocumentStore>(BuildDocumentStore()); }); }); using var host = hostBuilder.Build(); Console.WriteLine("The statistics module is running. "); Console.WriteLine( $"Try http://localhost:9000/Statistics/Metrics/CountsPerState?country=6df7e2ac-6f06-420a-a0b5-14fb3865e850&kind=permit"); Console.WriteLine($"Examine the Raven DB at http://localhost:9001"); await host.RunAsync(); }