您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

LuUtilsExtensions.cs 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System.Collections.Generic;
  2. using Luticate2.Utils.Dbo;
  3. using Luticate2.Utils.Dbo.OrderBy;
  4. using Luticate2.Utils.Dbo.Result;
  5. using Luticate2.Utils.Middlewares;
  6. using Microsoft.AspNetCore.Builder;
  7. using Microsoft.AspNetCore.Http;
  8. using Microsoft.AspNetCore.Mvc;
  9. using Microsoft.Extensions.DependencyInjection;
  10. namespace Luticate2.Utils.Controllers
  11. {
  12. public static class LuUtilsExtensions
  13. {
  14. public static IServiceCollection AddLuticatUtils(this IServiceCollection services)
  15. {
  16. return services;
  17. }
  18. public static IMvcBuilder AddLuticatUtils(this IMvcBuilder builder)
  19. {
  20. builder.Services.Configure<MvcOptions>(
  21. options => options.ModelBinderProviders.Insert(0, new LuOrderByBinderProvider()));
  22. return builder;
  23. }
  24. public static IApplicationBuilder UseLuticateUtils(this IApplicationBuilder app)
  25. {
  26. app.UseMiddleware<LuExceptionMiddleware>();
  27. return app;
  28. }
  29. public static int GetHttpCode<T>(this LuResult<T> result)
  30. {
  31. if (result.Status == LuStatus.Success)
  32. {
  33. return 200;
  34. }
  35. if (result.Status == LuStatus.InputError)
  36. {
  37. return 400;
  38. }
  39. if (result.Status == LuStatus.LoginError)
  40. {
  41. return 401;
  42. }
  43. if (result.Status == LuStatus.PermissionError)
  44. {
  45. return 403;
  46. }
  47. if (result.Status == LuStatus.NotFound)
  48. {
  49. return 404;
  50. }
  51. if (result.Status == LuStatus.DbError)
  52. {
  53. return 500;
  54. }
  55. if (result.Status == LuStatus.InternalError)
  56. {
  57. return 500;
  58. }
  59. return 418;
  60. }
  61. public static IDictionary<object, object> GetLuItems(this HttpContext context)
  62. {
  63. return (IDictionary<object, object>) context.Items["luticateItems"];
  64. }
  65. }
  66. }