using System.Collections.Generic; using Luticate2.Utils.Dbo; using Luticate2.Utils.Dbo.OrderBy; using Luticate2.Utils.Dbo.Result; using Luticate2.Utils.Middlewares; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; namespace Luticate2.Utils.Controllers { public static class LuUtilsExtensions { public static IServiceCollection AddLuticatUtils(this IServiceCollection services) { return services; } public static IMvcBuilder AddLuticatUtils(this IMvcBuilder builder) { builder.Services.Configure( options => options.ModelBinderProviders.Insert(0, new LuOrderByBinderProvider())); return builder; } public static IApplicationBuilder UseLuticateUtils(this IApplicationBuilder app) { app.UseMiddleware(); return app; } public static int GetHttpCode(this LuResult result) { if (result.Status == LuStatus.Success) { return 200; } if (result.Status == LuStatus.InputError) { return 400; } if (result.Status == LuStatus.LoginError) { return 401; } if (result.Status == LuStatus.PermissionError) { return 403; } if (result.Status == LuStatus.NotFound) { return 404; } if (result.Status == LuStatus.DbError) { return 500; } if (result.Status == LuStatus.InternalError) { return 500; } return 418; } public static IDictionary GetLuItems(this HttpContext context) { return (IDictionary) context.Items["luticateItems"]; } } }