Files
xCommons/Filters/RequireXPoweredOperationFilter.cs
T
2024-01-25 04:39:39 +03:30

39 lines
1.3 KiB
C#

using System.Collections.Generic;
using Microsoft.OpenApi.Any;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using xCommons.Configurations;
using xCommons.Constants;
using xCommons.Extensions;
namespace xCommons.Filters {
/// <summary>
/// RequireXPowered for NGSwag
/// </summary>
public partial class RequireXPoweredOperationFilter : IOperationFilter {
private readonly XAppConfiguration config;
public RequireXPoweredOperationFilter (XAppConfiguration config) {
this.config = config;
}
public void Apply (OpenApiOperation operation, OperationFilterContext context) {
//
if (operation.Parameters.IsNull ()) {
operation.Parameters = new List<OpenApiParameter> ();
}
//
operation.Parameters.Add (new OpenApiParameter {
In = ParameterLocation.Header,
Name = XAuthorization.XPoweredBy,
Description = "a Basic Authorization Filter",
Required = false,
Schema = new OpenApiSchema {
Type = "String",
Default = new OpenApiString (config.XPoweredValue)
}
});
}
}
}