public static IServiceCollection AddErrorsMvc( this IServiceCollection services, ErrorsRoleConfiguration roles) { services.AddMvcCore() .AddJsonFormatters() .AddAuthorization(options => options.AddPolicy("admin", builder => builder.RequireRole(roles.Admin))) .AddApiExplorer() .AddPhemaRouting(routing => routing.AddErrorsController(roles) .AddVersionController()) .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); return(services); }
public static IRoutingBuilder AddErrorsController(this IRoutingBuilder builder, ErrorsRoleConfiguration roles) { builder.AddController <ErrorsController>(controller => { controller.AddRoute("admin/errors", c => c.AdminRead(From.Query <ErrorFilterRequest>())) .HttpGet() .Authorize(roles.Admin); controller.AddRoute("admin/errors/{errorId}", c => c.DeleteById(From.Route <AdminDeleteErrorByIdRequest>())) .HttpDelete() .Authorize(roles.Admin); }); return(builder); }