Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using Newtonsoft.Json.Linq;
- using System.Threading.Tasks;
- using Jsom.Cloud.Infrastructure.Utilities.EventProcessor.Processors;
- using Jsom.Cloud.Infrastructure.Services;
- using Jsom.Cloud.Infrastructure.Utilities.EventProcessor.Contract;
- using Jsom.Cloud.Infrastructure.Interfaces;
- namespace Jsom.Cloud.Infrastructure.Utilities.EventProcessor
- {
- public class IoTEventProcessFactory : IEventProcessFactory
- {
- private IProcessWorker[] _processors2;
- IDeviceRepositoryManager _deviceRepositoryManager;
- public IoTEventProcessFactory(IDeviceRepositoryManager deviceRepositoryManager)
- {
- _deviceRepositoryManager = deviceRepositoryManager;
- ProcessorMapInitialization();
- }
- public async Task InitializeAsync()
- {
- await _deviceRepositoryManager.InitializeAsync();
- }
- public void ProcessorMapInitialization()
- {
- Type[] processorsTypes = new []
- {
- typeof(InitializeDeviceEventProcessor),
- typeof(FinishDeviceDeleteEventProcessor),
- typeof(ProcessTwinReplaceEventProcessor),
- typeof(ProcessTwinPatchEventProcessor),
- typeof(ParseTelemetryEventProcessor),
- }
- CreateProcessorsByTypes(processorsTypes);
- }
- private void CreateProcessorsByTypes(Type[] processorsTypes)
- {
- for (int i = 0; i < typesToCreate.Length; i++)
- {
- _processors2 = (IProcessWorker)Activator.CreateInstance(typesToCreate[i],
- _deviceRepositoryManager);
- }
- }
- public void HandleAndProcessEvent(string eventKey, string deviceId, JObject twin)
- {
- for (int i = 0; i < _processors2.Length; i++)
- {
- if (_processors2[i].GetKey() == eventKey)
- {
- worker.Process(deviceId, twin);
- break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement