public static IApplicationBuilder UseStreamMetadata(this IApplicationBuilder builder, IStreamStore streamStore) { var streamsMetadata = new StreamMetadataResource(streamStore); return(builder .MapWhen(IsSetStreamMetadata, inner => inner.Use(SetStreamMetadata(streamsMetadata))) .MapWhen(IsGetStreamMetadata, inner => inner.Use(GetStreamMetadata(streamsMetadata)))); }
private static MidFunc GetStreamMetadata(StreamMetadataResource streamsMetadata) => async(context, next) => { var options = new GetStreamMetadataOperation(context.Request); var response = await streamsMetadata.Get(options, context.RequestAborted); await context.WriteResponse(response); };
public static IApplicationBuilder UseStreamOptions(this IApplicationBuilder builder, IStreamStore streamStore) { var streams = new StreamResource(streamStore, false); var streamMessages = new StreamMessageResource(streamStore); var streamsMetadata = new StreamMetadataResource(streamStore); return(builder .MapWhen(IsStream, ConfigureOptions(streams)) .MapWhen(IsStreamMessage, ConfigureOptions(streamMessages)) .MapWhen(IsStreamMetadata, ConfigureOptions(streamsMetadata))); }
private static MidFunc SetStreamMetadata(StreamMetadataResource streamsMetadata) => next => async env => { var context = new OwinContext(env); var options = await SetStreamMetadataOperation.Create(context.Request, context.Request.CallCancelled); var response = await streamsMetadata.SetStreamMetadata(options, context.Request.CallCancelled); await context.WriteHalResponse(response); };
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)))); }
private static MidFunc GetStreamMetadata(StreamMetadataResource streamsMetadata) => next => async env => { var context = new OwinContext(env); var options = new GetStreamMetadataOperation(context.Request); var response = await streamsMetadata.GetStreamMetadata(options, context.Request.CallCancelled); using (new OptionalHeadRequestWrapper(context)) { await context.WriteHalResponse(response); } };
public static MidFunc UseStreamStore(IStreamStore streamStore) { var streamsMetadata = new StreamMetadataResource(streamStore); var builder = new AppBuilder() .MapWhen(IsSetStreamMetadata, inner => inner.Use(SetStreamMetadata(streamsMetadata))) .MapWhen(IsGetStreamMetadata, inner => inner.Use(GetStreamMetadata(streamsMetadata))); return(next => { builder.Run(ctx => next(ctx.Environment)); return builder.Build(); }); }
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)); }
public static MidFunc UseStreamStore(IStreamStore streamStore) { var streams = new StreamResource(streamStore); var streamMessages = new StreamMessageResource(streamStore); var streamsMetadata = new StreamMetadataResource(streamStore); var builder = new AppBuilder() .MapWhen(IsStream, ConfigureOptions(streams)) .MapWhen(IsStreamMessage, ConfigureOptions(streamMessages)) .MapWhen(IsStreamMetadata, ConfigureOptions(streamsMetadata)); return(next => { builder.Run(context => next(context.Environment)); return builder.Build(); }); }