public static IApplicationBuilder UseSqlStreamStoreHal( this IApplicationBuilder builder, IStreamStore streamStore, SqlStreamStoreMiddlewareOptions options = default) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (streamStore == null) { throw new ArgumentNullException(nameof(streamStore)); } options = options ?? new SqlStreamStoreMiddlewareOptions(); var index = new IndexResource(streamStore, options.ServerAssembly); var allStream = new AllStreamResource(streamStore, options.UseCanonicalUrls); var allStreamMessages = new AllStreamMessageResource(streamStore); var streamBrowser = new StreamBrowserResource(streamStore); var streams = new StreamResource(streamStore); var streamMetadata = new StreamMetadataResource(streamStore); var streamMessages = new StreamMessageResource(streamStore); var documentation = new DocsResource( index, allStream, allStreamMessages, streams, streamMessages, streamMetadata, streamBrowser); s_Log.Info(index.ToString); return(builder .UseExceptionHandling() .Use(Rfc1738) .Use(HeadRequests) .UseRouter(router => router .MapMiddlewareRoute($"{Constants.Paths.Docs}/{{doc}}", inner => inner.UseDocs(documentation)) .MapMiddlewareRoute(Constants.Paths.AllStream, inner => inner.UseAllStream(allStream)) .MapMiddlewareRoute($"{Constants.Paths.AllStream}/{{position:long}}", inner => inner.UseAllStreamMessage(allStreamMessages)) .MapMiddlewareRoute(Constants.Paths.Streams, inner => inner.UseStreamBrowser(streamBrowser)) .MapMiddlewareRoute($"{Constants.Paths.Streams}/{{streamId}}", inner => inner.UseStreams(streams)) .MapMiddlewareRoute($"{Constants.Paths.Streams}/{{streamId}}/{Constants.Paths.Metadata}", inner => inner.UseStreamMetadata(streamMetadata)) .MapMiddlewareRoute($"{Constants.Paths.Streams}/{{streamId}}/{{p}}", inner => inner.UseStreamMessages(streamMessages)) .MapMiddlewareRoute(string.Empty, inner => inner.UseIndex(index)))); }
public static IApplicationBuilder UseSqlStreamStoreHal( this IApplicationBuilder builder, IStreamStore streamStore, SqlStreamStoreMiddlewareOptions options = default) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (streamStore == null) { throw new ArgumentNullException(nameof(streamStore)); } options = options ?? new SqlStreamStoreMiddlewareOptions(); var index = new IndexResource(streamStore, options.ServerAssembly); var allStream = new AllStreamResource(streamStore, options.UseCanonicalUrls); var allStreamMessages = new AllStreamMessageResource(streamStore); var streamBrowser = new StreamBrowserResource(streamStore); var streams = new StreamResource(streamStore); var streamMetadata = new StreamMetadataResource(streamStore); var streamMessages = new StreamMessageResource(streamStore); var documentation = new DocsResource( index, allStream, allStreamMessages, streams, streamMessages, streamMetadata, streamBrowser); s_Log.Info(index.ToString); return(builder .UseExceptionHandling() .Use(CaseSensitiveQueryStrings) .Use(HeadRequests) .UseDocs(documentation) .UseIndex(index) .UseAllStream(allStream) .UseAllStreamMessage(allStreamMessages) .UseStreamBrowser(streamBrowser) .UseStreams(streams) .UseStreamMetadata(streamMetadata) .UseStreamMessages(streamMessages)); }