public static IApplicationBuilder UseStreamMetadata( this IApplicationBuilder builder, StreamMetadataResource streamMetadata) => builder .UseMiddlewareLogging(typeof(StreamMetadataMiddleware)) .MapWhen(HttpMethod.Post, inner => inner.UseAccept(Constants.MediaTypes.HalJson).Use(SetStreamMetadata(streamMetadata))) .MapWhen(HttpMethod.Get, inner => inner.UseAccept(Constants.MediaTypes.HalJson).Use(GetStreamMetadata(streamMetadata))) .UseAllowedMethods(streamMetadata);
private static MidFunc GetStreamMetadata(StreamMetadataResource streamsMetadata) => async(context, next) => { var operation = new GetStreamMetadataOperation(context); var response = await streamsMetadata.Get(operation, context.RequestAborted); await context.WriteResponse(response); };
private static Action <IApplicationBuilder> Configure(StreamMetadataResource streamsMetadata) => builder => builder .UseMiddlewareLogging(typeof(StreamMetadataMiddleware)) .MapWhen(HttpMethod.Post, inner => inner.UseAccept(Constants.MediaTypes.HalJson).Use(SetStreamMetadata(streamsMetadata))) .MapWhen(HttpMethod.Get, inner => inner.UseAccept(Constants.MediaTypes.HalJson).Use(GetStreamMetadata(streamsMetadata))) .UseAllowedMethods(streamsMetadata);
public static IApplicationBuilder UseStreamMetadata( this IApplicationBuilder builder, StreamMetadataResource streamMetadata) => builder.MapWhen(IsMatch, Configure(streamMetadata));