private ITicketThread GetOrCreateTicketThread(string serial, CommandDeviceType commandDeviceType, out bool wasCreated) { var result = GetTicketThread(serial); if (result != null) { wasCreated = false; return(result); } Console.WriteLine("Criando nova thread"); switch (commandDeviceType) { case CommandDeviceType.Smc: var smc = _smcService.GetBySerial(serial); result = new SmcTicketThread(smc, _baseClientSettings, _brokerSettings, _mqttClientConfiguration, _mqttClientMethods, _subscribeTopic, _commandRules, _eventService, _forwarderSenderService); TicketThreads.Add(result); break; case CommandDeviceType.Meter: var meter = _meterService.GetBySerial(serial); result = new MeterTicketThread(meter, _baseClientSettings, _brokerSettings, _mqttClientConfiguration, _mqttClientMethods, _subscribeTopic, _commandRules, _eventService, _forwarderSenderService); TicketThreads.Add(result); break; default: throw new NotImplementedException(); } wasCreated = true; return(result); }
public IActionResult GetBySerial([FromRoute] string serial) { var savedMeterDto = _meterService.GetBySerial(serial); if (savedMeterDto == null) { return(new NotFoundResult()); } return(new OkObjectResult(savedMeterDto)); }