AdWorkerFactory.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Ips.Library.Entity;
  2. using Ips.Sps.Scheduling.Entities;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Ips.Sps.Scheduling.SigAds
  9. {
  10. public class AdWorkerFactory
  11. {
  12. public static AdWorkerBase Create(RunTsk runTsk)
  13. {
  14. AdWorkerBase worker = null;
  15. if (!runTsk.IsHistory)
  16. {
  17. if (runTsk.TskType == TskType.LocTsk)
  18. {
  19. switch (runTsk.AdMode)
  20. {
  21. case AdMode.ADC:
  22. worker = new AdcWorker(runTsk);
  23. break;
  24. case AdMode.DDC:
  25. worker = new DdcWorker(runTsk);
  26. break;
  27. case AdMode.DDCKeep:
  28. worker = new DdcKeepWorker(runTsk);
  29. break;
  30. }
  31. }
  32. else if (runTsk.TskType == TskType.SctTsk)
  33. {
  34. switch (runTsk.AdMode)
  35. {
  36. case AdMode.ADC:
  37. worker = new AdcSctWorker(runTsk);
  38. break;
  39. //case AdMode.DDC:
  40. // worker = new AdDdcWorker(runTsk);
  41. // break;
  42. //case AdMode.DDCKeep:
  43. // worker = new AdDdcCtWorker(runTsk);
  44. // break;
  45. default:
  46. throw new Exception("不支持的采集模式!");
  47. }
  48. }
  49. }
  50. else
  51. {
  52. if (runTsk.FileFindType == SigFileFindType.ByFS)
  53. {
  54. worker = new AdFsHistoryWorker(runTsk);
  55. }
  56. else
  57. {
  58. worker = new AdDbHistoryWorker(runTsk);
  59. }
  60. }
  61. return worker;
  62. }
  63. }
  64. }