sample/EasyPermissionManagement.Web/Startup.cs
using EasyPermissionManagement.Core.Extensions;using EasyPermissionManagement.PostgreSql.Extensions;using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Http;using Microsoft.EntityFrameworkCore;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;using System;using System.IO;using System.Reflection; namespace EasyPermissionManagement.Web{ /// <summary> /// Startup /// </summary> public class Startup { /// <summary> /// Configuration Object /// </summary> public IConfiguration Configuration { get; } /// <summary> /// Ctor /// </summary> /// <param name="configuration"> /// Configuration Object /// </param> public Startup(IConfiguration configuration) { Configuration = configuration; } /// <summary> /// This method gets called by the runtime. Use this method to add services to the container. /// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940</summary> /// <param name="services"> /// Specifies the contract for a collection of service descriptors. /// </param>Method `ConfigureServices` has 27 lines of code (exceeds 25 allowed). Consider refactoring. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddEasyPermission(); services.AddTransient<IHttpContextAccessor, HttpContextAccessor>(); services.UseEasyPermissionNpgsql(options => options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"))); services.AddSwaggerGen(options => { options.SwaggerDoc("EasyPermissionManagement", new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "Easy Permission Management", Version = "1.0.0", Description = "This repo, provides query profiler for EF Core.", Contact = new Microsoft.OpenApi.Models.OpenApiContact() { Email = "furkan.dvlp@gmail.com", Url = new Uri("https://github.com/furkandeveloper/EasyProfiler") } }); var docFile = $"{Assembly.GetEntryAssembly().GetName().Name}.xml"; var filePath = Path.Combine(AppContext.BaseDirectory, docFile); if (File.Exists((filePath))) { options.IncludeXmlComments(filePath); } options.DescribeAllParametersInCamelCase(); }); } /// <summary> /// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. /// </summary> /// <param name="app"> /// Defines a class that provides the mechanisms to configure an application's request pipeline. /// </param> /// <param name="env"> /// Provides information about the web hosting environment an application is running in. /// </param> public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseEasyPermission(); app.ApplyEasyPermission(); app.UseRouting(); app.UseSwagger(); app.UseSwaggerUI(options => { options.EnableDeepLinking(); options.ShowExtensions(); options.DisplayRequestDuration(); options.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.None); options.RoutePrefix = "api-docs"; options.SwaggerEndpoint("/swagger/EasyPermissionManagement/swagger.json", "EasyPermissionManagementSwagger"); }); app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapDefaultControllerRoute(); }); } }}