using Microsoft.AspNetCore.Builder; namespace DigitalData.Core.API { /// /// Provides extension methods for adding middleware to the application's request pipeline. /// public static class DIExtensions { /// /// Adds the to the application's request pipeline to include /// Content Security Policy (CSP) headers in the HTTP response. /// /// The application builder. /// /// The CSP policy string with placeholders. The first format parameter {0} will be replaced /// by the nonce value. /// /// The application builder with the CSP middleware added. public static IApplicationBuilder UseCSPMiddleware(this IApplicationBuilder app, string policy) => app.UseMiddleware(policy); /// /// Checks if the DiP (Development in Production) mode is enabled for the WebApplicationBuilder. /// /// The WebApplicationBuilder instance. /// True if DiP mode is enabled; otherwise, false. public static bool IsDiP(this WebApplicationBuilder builder) => builder.Configuration.GetValue("DiPMode"); /// /// Checks if the DiP (Development in Production) mode is enabled for the WebApplication. /// /// The WebApplication instance. /// True if DiP mode is enabled; otherwise, false. public static bool IsDiP(this WebApplication app) => app.Configuration.GetValue("DiPMode"); /// /// Checks if the environment is Development or DiP (Development in Production) mode is enabled for the WebApplicationBuilder. /// /// The WebApplicationBuilder instance. /// True if the environment is Development or DiP mode is enabled; otherwise, false. public static bool IsDevOrDiP(this WebApplicationBuilder builder) => builder.Environment.IsDevelopment() || builder.IsDiP(); /// /// Checks if the environment is Development or DiP (Development in Production) mode is enabled for the WebApplication. /// /// The WebApplication instance. /// True if the environment is Development or DiP mode is enabled; otherwise, false. public static bool IsDevOrDiP(this WebApplication app) => app.Environment.IsDevelopment() || app.IsDiP(); } }