GlobalVar.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using LJLib.Net.SPI.Com;
  2. using LJProxy.Excutor;
  3. using LJProxy.LJLib.Net.SPI.Server;
  4. using LJProxy.Models;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. using Newtonsoft.Json.Linq;
  10. using Microsoft.AspNetCore.Mvc;
  11. using Microsoft.Extensions.Configuration;
  12. using LJProxy.Settings;
  13. namespace LJProxy
  14. {
  15. public static class GlobalVar
  16. {
  17. private static ExcutorManager excutorManager = null;
  18. static GlobalVar()
  19. {
  20. InitExcutorMap();
  21. }
  22. private static void InitExcutorMap()
  23. {
  24. excutorManager = new ExcutorManager();
  25. excutorManager.AddMap(new CheckUpdateRequest().GetApiName(), typeof(CheckUpdateRequest), new CheckUpdateExcutor());
  26. excutorManager.AddMap(new GetUpdatePkgRequest().GetApiName(), typeof(GetUpdatePkgRequest), new GetUpdatePkgExcutor());
  27. excutorManager.AddMap(new GetProxyDomainListRequest().GetApiName(), typeof(GetProxyDomainListRequest), new GetProxyDomainListExcutor());
  28. excutorManager.AddMap(new GetUpdateJsonRequest().GetApiName(), typeof(GetUpdateJsonRequest), new GetUpdateJsonExcutor());
  29. excutorManager.AddMap(new GetAppUpdateRequest().GetApiName(), typeof(GetAppUpdateRequest), new GetAppUpdateExcutor());
  30. }
  31. public static Tuple<bool,IActionResult> Excute(string apiName,string requestBody,object requestState)
  32. {
  33. var requestType = excutorManager.GetRequestType(apiName);
  34. if (requestType == null) return new Tuple<bool, IActionResult>(false, null);
  35. ILJRequest request = null;
  36. if(!string.IsNullOrEmpty(requestBody)) request = JObject.Parse(requestBody).ToObject(requestType) as ILJRequest;
  37. else request = new JObject().ToObject(requestType) as ILJRequest;
  38. var result = excutorManager.DoExcute( request, requestState);
  39. return new Tuple<bool, IActionResult>(true, result);
  40. }
  41. public static AppSettings Setting { get; private set; }
  42. public static void InitSetting(IConfiguration configuration)
  43. {
  44. Setting = new AppSettings();
  45. Setting.L1SvrUrl = configuration.GetSection("L1SvrUrl")?.Value;
  46. string threadSizeStr = configuration.GetSection("ThreadSize")?.Value;
  47. Setting.ThreadSize = string.IsNullOrEmpty(threadSizeStr)?20:Convert.ToInt32(threadSizeStr);
  48. Setting.ProxyDomainList = configuration.GetSection("ProxyDomainList").GetChildren().Select(c => c.Value).ToList();
  49. }
  50. }
  51. }