Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using Newtonsoft.Json.Linq;
  4. using System.Threading.Tasks;
  5. using Jsom.Cloud.Infrastructure.Utilities.EventProcessor.Processors;
  6. using Jsom.Cloud.Infrastructure.Services;
  7. using Jsom.Cloud.Infrastructure.Utilities.EventProcessor.Contract;
  8. using Jsom.Cloud.Infrastructure.Interfaces;
  9.  
  10. namespace Jsom.Cloud.Infrastructure.Utilities.EventProcessor
  11. {
  12. public class IoTEventProcessFactory : IEventProcessFactory
  13. {
  14. private IProcessWorker[] _processors2;
  15. IDeviceRepositoryManager _deviceRepositoryManager;
  16.  
  17. public IoTEventProcessFactory(IDeviceRepositoryManager deviceRepositoryManager)
  18. {
  19. _deviceRepositoryManager = deviceRepositoryManager;
  20. ProcessorMapInitialization();
  21. }
  22.  
  23. public async Task InitializeAsync()
  24. {
  25. await _deviceRepositoryManager.InitializeAsync();
  26. }
  27.  
  28. public void ProcessorMapInitialization()
  29. {
  30. Type[] processorsTypes = new []
  31. {
  32. typeof(InitializeDeviceEventProcessor),
  33. typeof(FinishDeviceDeleteEventProcessor),
  34. typeof(ProcessTwinReplaceEventProcessor),
  35. typeof(ProcessTwinPatchEventProcessor),
  36. typeof(ParseTelemetryEventProcessor),
  37. }
  38.  
  39. CreateProcessorsByTypes(processorsTypes);
  40. }
  41.  
  42. private void CreateProcessorsByTypes(Type[] processorsTypes)
  43. {
  44. for (int i = 0; i < typesToCreate.Length; i++)
  45. {
  46. _processors2 = (IProcessWorker)Activator.CreateInstance(typesToCreate[i],
  47. _deviceRepositoryManager);
  48. }
  49. }
  50.  
  51. public void HandleAndProcessEvent(string eventKey, string deviceId, JObject twin)
  52. {
  53. for (int i = 0; i < _processors2.Length; i++)
  54. {
  55. if (_processors2[i].GetKey() == eventKey)
  56. {
  57. worker.Process(deviceId, twin);
  58. break;
  59. }
  60. }
  61. }
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement