/// <summary> /// Creates view model filter delegate that runs before it responds to something. /// </summary> /// <param name="hubContext">DotNetify hub context.</param> /// <param name="hubPipeline">Middleware/VM filter pipeline.</param> /// <param name="vmData">View model data from the request.</param> /// <returns>View model filter delegate.</returns> private VMController.FilterDelegate CreateRespondingVMFilter(IHubPipeline hubPipeline, string vmId, object vmData) { return(async(_vmId, vm, data, vmAction) => { var hubContext = new DotNetifyHubContext(new HttpCallerContext(HttpContext), nameof(DotNetifyHub.ResponseVMAsync), vmId, vmData, BuildHeaders(), HttpContext?.User); await hubPipeline.RunMiddlewaresAsync(hubContext, async ctx => { await CreateVMFilter(hubContext, hubPipeline)(_vmId, vm, data, vmAction); }); }); }
/// <summary> /// Creates view model filter delegate that runs before it responds to something. /// </summary> /// <param name="hubContext">DotNetify hub context.</param> /// <param name="hubPipeline">Middleware/VM filter pipeline.</param> /// <param name="vmData">View model data from the request.</param> /// <returns>View model filter delegate.</returns> private VMController.FilterDelegate CreateRespondingVMFilter(IHubPipeline hubPipeline, string vmId, object vmData) { return((_vmId, vm, data, vmAction) => { var hubContext = new DotNetifyHubContext(new HttpCallerContext(HttpContext), nameof(DotNetifyHub.Response_VM), vmId, vmData, BuildHeaders(), HttpContext?.User); hubPipeline.RunMiddlewares(hubContext, ctx => { CreateVMFilter(hubContext, hubPipeline)(_vmId, vm, data, vmAction); return Task.CompletedTask; }); }); }