GlobalVar.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. namespace LJProxy
  12. {
  13. public static class GlobalVar
  14. {
  15. private static ExcutorManager excutorManager = null;
  16. static GlobalVar()
  17. {
  18. InitExcutorMap();
  19. }
  20. public static void InitExcutorMap()
  21. {
  22. excutorManager = new ExcutorManager();
  23. excutorManager.AddMap(new CheckUpdateRequest().GetApiName(), typeof(CheckUpdateRequest), new CheckUpdateExcutor());
  24. excutorManager.AddMap(new GetUpdatePkgRequest().GetApiName(), typeof(GetUpdatePkgRequest), new GetUpdatePkgExcutor());
  25. excutorManager.AddMap(new GetProxyDomainListRequest().GetApiName(), typeof(GetProxyDomainListRequest), new GetProxyDomainListExcutor());
  26. excutorManager.AddMap(new GetUpdateJsonRequest().GetApiName(), typeof(GetUpdateJsonRequest), new GetUpdateJsonExcutor());
  27. excutorManager.AddMap(new GetAppUpdateRequest().GetApiName(), typeof(GetAppUpdateRequest), new GetAppUpdateExcutor());
  28. }
  29. public static Tuple<bool,IActionResult> Excute(string apiName,string requestBody,object requestState)
  30. {
  31. var requestType = excutorManager.GetRequestType(apiName);
  32. if (requestType == null) return new Tuple<bool, IActionResult>(false, null);
  33. ILJRequest request = null;
  34. if(!string.IsNullOrEmpty(requestBody)) request = JObject.Parse(requestBody).ToObject(requestType) as ILJRequest;
  35. else request = new JObject().ToObject(requestType) as ILJRequest;
  36. var result = excutorManager.DoExcute( request, requestState);
  37. return new Tuple<bool, IActionResult>(true, result);
  38. }
  39. }
  40. }