public async Task <bool> CreateTrafficDensityLog(TrafficDensityRequest request) { var copier = new ClassValueCopier(); TrafficDensityLog newChildPart = copier.ConvertAndCopy <TrafficDensityLog, TrafficDensityRequest>(request); return(await _trafficDensityRepository.AddAsync(newChildPart)); }
private void RegisterMqtt() { var factory = new MqttFactory(); Client = factory.CreateMqttClient(); ClientOptions = new MqttClientOptionsBuilder() .WithClientId("TestClient") .WithTcpServer("34.244.190.178") .Build(); var PublishOptions = new MqttApplicationMessageBuilder() .WithTopic("MyTopic") .WithPayload("Hello World") .WithExactlyOnceQoS() .WithRetainFlag() .Build(); Client.ConnectedHandler = new MqttClientConnectedHandlerDelegate(e => { Client.SubscribeAsync(new TopicFilterBuilder().WithTopic("#").Build()); }); Client.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(async e => { var data = e.ApplicationMessage.ConvertPayloadToString(); Console.WriteLine($"Topic is {e.ApplicationMessage.Topic} \n{data}"); string topic = e.ApplicationMessage.Topic; using (IServiceScope scope = _serviceProvider.CreateScope()) { // pass it to the handler class var businessLogic = scope.ServiceProvider.GetRequiredService <Traffic_BL>(); var topicArray = topic.Split('/'); switch (topicArray[1]) { case "TrafficDensity": TrafficDensityRequest request = JsonConvert.DeserializeObject <TrafficDensityRequest>(data); var result = businessLogic.CreateTrafficDensityLog(request); break; case "PedestrianRequest": PedestrianCrossingRequest crossingRequest = JsonConvert.DeserializeObject <PedestrianCrossingRequest>(data); var result1 = businessLogic.CreatePedestrianCrossingLog(crossingRequest); break; } } }); ConnectMqqt(); }