Skip to main content
Code Review

Return to Question

Commonmark migration
Source Link
added 7 characters in body
Source Link
Nkosi
  • 3.3k
  • 17
  • 25
sealed class CarterOptionsBuilder {
 delegate Task<bool> BeforeDelegate(HttpContext context);
 delegate Task AfterDelegate(HttpContext context);
 private readonly Stack<Func<BeforeDelegate, BeforeDelegate>> befores = new Stack<Func<BeforeDelegate, BeforeDelegate>>();
 private readonly Stack<Func<AfterDelegate, AfterDelegate>> afters = new Stack<Func<AfterDelegate, AfterDelegate>>();
 public CarterOptionsBuilder HandleBeforeAddBeforeHook(Func<HttpContext, Task<bool>> handler) {
 befores.Push(next => async context => {
 return await handler(context) && await next(context);
 });
 return this;
 }
 public CarterOptionsBuilder HandleAfterAddAfterHook(Func<HttpContext, Task> handler) {
 afters.Push(next => context => {
 handler(context);
 return next(context);
 });
 return this;
 }
 public CarterOptions Build(OpenApiOptions openApiOptions = null) {
 var before = new BeforeDelegate(c => Task.FromResult(true));
 while (befores.Any()) {
 var current = befores.Pop();
 before = current(before);
 }
 var after = new AfterDelegate(c => Task.CompletedTask);
 while (afters.Any()) {
 var current = afters.Pop();
 after = current(after);
 }
 return new CarterOptions(before.Invoke, after.Invoke, openApiOptions);
 }
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
 CarterOptions options = new CarterOptionsBuilder()
 .HandleBeforeAddBeforeHook(this.AddRequestId)
 .HandleBeforeAddBeforeHook(this.BeforeLog)
 .HandleAfterAddAfterHook(this.AfterLog)
 .Build();
 app.UseCarter(options);
}
private Task AfterLog(HttpContext arg) {
 //...
 return Task.CompletedTask;
}
private Task<bool> BeforeLog(HttpContext arg) {
 //...
 return Task.FromResult(true);
}
private Task<bool> AddRequestId(HttpContext ctx) {
 ctx.Request.Header["x-request-id"] = Guid.NewGuid().ToString();
 return Task.FromResult(true);
}
public static CarterOptionsBuilder AddLog(this CarterOptionsBuilder builder) {
 return builder
 .HandleBeforeAddBeforeHook(this.BeforeLog)
 .HandleAfterAddAfterHook(this.AfterLog); 
}
private static Task AfterLog(HttpContext arg) {
 //...
 return Task.CompletedTask;
}
private static Task<bool> BeforeLog(HttpContext arg) {
 //...
 return Task.FromResult(true);
}
sealed class CarterOptionsBuilder {
 delegate Task<bool> BeforeDelegate(HttpContext context);
 delegate Task AfterDelegate(HttpContext context);
 private readonly Stack<Func<BeforeDelegate, BeforeDelegate>> befores = new Stack<Func<BeforeDelegate, BeforeDelegate>>();
 private readonly Stack<Func<AfterDelegate, AfterDelegate>> afters = new Stack<Func<AfterDelegate, AfterDelegate>>();
 public CarterOptionsBuilder HandleBefore(Func<HttpContext, Task<bool>> handler) {
 befores.Push(next => async context => {
 return await handler(context) && await next(context);
 });
 return this;
 }
 public CarterOptionsBuilder HandleAfter(Func<HttpContext, Task> handler) {
 afters.Push(next => context => {
 handler(context);
 return next(context);
 });
 return this;
 }
 public CarterOptions Build(OpenApiOptions openApiOptions = null) {
 var before = new BeforeDelegate(c => Task.FromResult(true));
 while (befores.Any()) {
 var current = befores.Pop();
 before = current(before);
 }
 var after = new AfterDelegate(c => Task.CompletedTask);
 while (afters.Any()) {
 var current = afters.Pop();
 after = current(after);
 }
 return new CarterOptions(before.Invoke, after.Invoke, openApiOptions);
 }
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
 CarterOptions options = new CarterOptionsBuilder()
 .HandleBefore(this.AddRequestId)
 .HandleBefore(this.BeforeLog)
 .HandleAfter(this.AfterLog)
 .Build();
 app.UseCarter(options);
}
private Task AfterLog(HttpContext arg) {
 //...
 return Task.CompletedTask;
}
private Task<bool> BeforeLog(HttpContext arg) {
 //...
 return Task.FromResult(true);
}
private Task<bool> AddRequestId(HttpContext ctx) {
 ctx.Request.Header["x-request-id"] = Guid.NewGuid().ToString();
 return Task.FromResult(true);
}
public static CarterOptionsBuilder AddLog(this CarterOptionsBuilder builder) {
 return builder
 .HandleBefore(this.BeforeLog)
 .HandleAfter(this.AfterLog); 
}
private static Task AfterLog(HttpContext arg) {
 //...
 return Task.CompletedTask;
}
private static Task<bool> BeforeLog(HttpContext arg) {
 //...
 return Task.FromResult(true);
}
sealed class CarterOptionsBuilder {
 delegate Task<bool> BeforeDelegate(HttpContext context);
 delegate Task AfterDelegate(HttpContext context);
 private readonly Stack<Func<BeforeDelegate, BeforeDelegate>> befores = new Stack<Func<BeforeDelegate, BeforeDelegate>>();
 private readonly Stack<Func<AfterDelegate, AfterDelegate>> afters = new Stack<Func<AfterDelegate, AfterDelegate>>();
 public CarterOptionsBuilder AddBeforeHook(Func<HttpContext, Task<bool>> handler) {
 befores.Push(next => async context => {
 return await handler(context) && await next(context);
 });
 return this;
 }
 public CarterOptionsBuilder AddAfterHook(Func<HttpContext, Task> handler) {
 afters.Push(next => context => {
 handler(context);
 return next(context);
 });
 return this;
 }
 public CarterOptions Build(OpenApiOptions openApiOptions = null) {
 var before = new BeforeDelegate(c => Task.FromResult(true));
 while (befores.Any()) {
 var current = befores.Pop();
 before = current(before);
 }
 var after = new AfterDelegate(c => Task.CompletedTask);
 while (afters.Any()) {
 var current = afters.Pop();
 after = current(after);
 }
 return new CarterOptions(before.Invoke, after.Invoke, openApiOptions);
 }
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
 CarterOptions options = new CarterOptionsBuilder()
 .AddBeforeHook(this.AddRequestId)
 .AddBeforeHook(this.BeforeLog)
 .AddAfterHook(this.AfterLog)
 .Build();
 app.UseCarter(options);
}
private Task AfterLog(HttpContext arg) {
 //...
 return Task.CompletedTask;
}
private Task<bool> BeforeLog(HttpContext arg) {
 //...
 return Task.FromResult(true);
}
private Task<bool> AddRequestId(HttpContext ctx) {
 ctx.Request.Header["x-request-id"] = Guid.NewGuid().ToString();
 return Task.FromResult(true);
}
public static CarterOptionsBuilder AddLog(this CarterOptionsBuilder builder) {
 return builder
 .AddBeforeHook(this.BeforeLog)
 .AddAfterHook(this.AfterLog); 
}
private static Task AfterLog(HttpContext arg) {
 //...
 return Task.CompletedTask;
}
private static Task<bool> BeforeLog(HttpContext arg) {
 //...
 return Task.FromResult(true);
}
added 58 characters in body
Source Link
Nkosi
  • 3.3k
  • 17
  • 25
sealed class CarterOptionsBuilder {
 delegate Task<bool> BeforeDelegate(HttpContext context);
 delegate Task AfterDelegate(HttpContext context);
 private readonly Stack<Func<BeforeDelegate, BeforeDelegate>> befores = new Stack<Func<BeforeDelegate, BeforeDelegate>>();
 private readonly Stack<Func<AfterDelegate, AfterDelegate>> afters = new Stack<Func<AfterDelegate, AfterDelegate>>();
 public CarterOptionsBuilder HandleBefore(Func<HttpContext, Task<bool>> beforehandler) {
 befores.Push(next => async context => {
 return await beforehandler(context) && await next(context);
 });
 return this;
 }
 public CarterOptionsBuilder HandleAfter(Func<HttpContext, Task> afterhandler) {
 afters.Push(next => context => {
 afterhandler(context);
 return next(context);
 });
 return this;
 }
 public CarterOptions Build(OpenApiOptions openApiOptions = null) {
 var before = new BeforeDelegate(c => Task.FromResult(true));
 while (befores.Any()) {
 var current = befores.Pop();
 before = current(before);
 }
 var after = new AfterDelegate(c => Task.CompletedTask);
 while (afters.Any()) {
 var current = afters.Pop();
 after = current(after);
 }
 return new CarterOptions(before.Invoke, after.Invoke, openApiOptions);
 }
}
sealed class CarterOptionsBuilder {
 delegate Task<bool> BeforeDelegate(HttpContext context);
 delegate Task AfterDelegate(HttpContext context);
 private readonly Stack<Func<BeforeDelegate, BeforeDelegate>> befores = new Stack<Func<BeforeDelegate, BeforeDelegate>>();
 private readonly Stack<Func<AfterDelegate, AfterDelegate>> afters = new Stack<Func<AfterDelegate, AfterDelegate>>();
 public CarterOptionsBuilder HandleBefore(Func<HttpContext, Task<bool>> before) {
 befores.Push(next => async context => {
 return await before(context) && await next(context);
 });
 return this;
 }
 public CarterOptionsBuilder HandleAfter(Func<HttpContext, Task> after) {
 afters.Push(next => context => {
 after(context);
 return next(context);
 });
 return this;
 }
 public CarterOptions Build() {
 var before = new BeforeDelegate(c => Task.FromResult(true));
 while (befores.Any()) {
 var current = befores.Pop();
 before = current(before);
 }
 var after = new AfterDelegate(c => Task.CompletedTask);
 while (afters.Any()) {
 var current = afters.Pop();
 after = current(after);
 }
 return new CarterOptions(before.Invoke, after.Invoke);
 }
}
sealed class CarterOptionsBuilder {
 delegate Task<bool> BeforeDelegate(HttpContext context);
 delegate Task AfterDelegate(HttpContext context);
 private readonly Stack<Func<BeforeDelegate, BeforeDelegate>> befores = new Stack<Func<BeforeDelegate, BeforeDelegate>>();
 private readonly Stack<Func<AfterDelegate, AfterDelegate>> afters = new Stack<Func<AfterDelegate, AfterDelegate>>();
 public CarterOptionsBuilder HandleBefore(Func<HttpContext, Task<bool>> handler) {
 befores.Push(next => async context => {
 return await handler(context) && await next(context);
 });
 return this;
 }
 public CarterOptionsBuilder HandleAfter(Func<HttpContext, Task> handler) {
 afters.Push(next => context => {
 handler(context);
 return next(context);
 });
 return this;
 }
 public CarterOptions Build(OpenApiOptions openApiOptions = null) {
 var before = new BeforeDelegate(c => Task.FromResult(true));
 while (befores.Any()) {
 var current = befores.Pop();
 before = current(before);
 }
 var after = new AfterDelegate(c => Task.CompletedTask);
 while (afters.Any()) {
 var current = afters.Pop();
 after = current(after);
 }
 return new CarterOptions(before.Invoke, after.Invoke, openApiOptions);
 }
}
added 567 characters in body
Source Link
Nkosi
  • 3.3k
  • 17
  • 25
Loading
Source Link
Nkosi
  • 3.3k
  • 17
  • 25
Loading
lang-cs

AltStyle によって変換されたページ (->オリジナル) /