public async Task Invoke(HttpContext context, IRequestResponseService service) { //First, get the incoming request var request = await FormatRequest(context.Request); //Copy a pointer to the original response body stream var originalBodyStream = context.Response.Body; //Create a new memory stream... using (var responseBody = new MemoryStream()) { //...and use that for the temporary response body context.Response.Body = responseBody; //Continue down the Middleware pipeline, eventually returning to this class await _next(context); //Format the response from the server var response = await FormatResponse(context.Response); //Save log to chosen datastore service.Insert(logEntity); //Copy the contents of the new memory stream (which contains the response) to the original stream, which is then returned to the client. await responseBody.CopyToAsync(originalBodyStream); } }
public ClientBootstrapper(IContainer container) { _requestResponseSerice = new RequestResponseService(); container.Update(builder => builder.RegisterType <RequestTask>().As <IRequestTask>().InstancePerDependency()); container.Update(builder => builder.RegisterType <AsyncRouterServiceProxy>().As <IAsyncRouterServiceProxy>().InstancePerDependency()); container.Update(builder => builder.RegisterType <SyncRouterServiceProxy>().As <ISyncRouterServiceProxy>().InstancePerDependency()); }
public ClientBootstrapper(IContainer container) { _requestResponseSerice = new RequestResponseService(); container.Update(builder => builder.RegisterType<RequestTask>().As<IRequestTask>().InstancePerDependency()); container.Update(builder => builder.RegisterType<AsyncRouterServiceProxy>().As<IAsyncRouterServiceProxy>().InstancePerDependency()); container.Update(builder => builder.RegisterType<SyncRouterServiceProxy>().As<ISyncRouterServiceProxy>().InstancePerDependency()); }
public ServerBootstrapper(IContainer container) { IoC.Container = container; container.Update(builder => builder.RegisterType<NoOpLogger>().As<ILog>().InstancePerDependency()); container.Update(builder => builder.RegisterType<AsyncRouter>().As<IAsyncRouter>().SingleInstance()); container.Update(builder => builder.RegisterType<SyncRouter>().As<ISyncRouter>().SingleInstance()); container.Update(builder => builder.RegisterType<RequestHandlerService>().As<IRequestHandlerService>().SingleInstance()); container.Update(builder => builder.RegisterType<RequestResponseService>().As<IRequestResponseService>().SingleInstance()); _requestHandlerSerice = IoC.Container.Resolve<IRequestHandlerService>(); _requestResponseSerice = IoC.Container.Resolve<IRequestResponseService>(); }
public ServerBootstrapper(IContainer container) { IoC.Container = container; container.Update(builder => builder.RegisterType <NoOpLogger>().As <ILog>().InstancePerDependency()); container.Update(builder => builder.RegisterType <AsyncRouter>().As <IAsyncRouter>().SingleInstance()); container.Update(builder => builder.RegisterType <SyncRouter>().As <ISyncRouter>().SingleInstance()); container.Update(builder => builder.RegisterType <RequestHandlerService>().As <IRequestHandlerService>().SingleInstance()); container.Update(builder => builder.RegisterType <RequestResponseService>().As <IRequestResponseService>().SingleInstance()); _requestHandlerSerice = IoC.Container.Resolve <IRequestHandlerService>(); _requestResponseSerice = IoC.Container.Resolve <IRequestResponseService>(); }
public RequestResponseController(IRequestResponseService service) { _service = service; }
public AsyncRouter(ILog log, IRequestResponseService requestResponseService) { _log = log; _requestResponseService = requestResponseService; }
public HomeController(IRequestResponseService serviceCall) { _serviceCall = serviceCall; }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IRoutingTableService routingTableService, ICommandService cmdService, IRequestResponseService responseService) { //app.ApplicationServices.GetService<X.Services.ISettingsService>().Start(cfg["configPath"]); app.ApplicationServices.GetService <R.Services.IFileWatchService>().Start("c:\\rest"); app.UseExtendedRouter(routingTableService, cmdService, responseService); }