예제 #1
0
        public async Task <bool> CreatePedestrianCrossingLog(PedestrianCrossingRequest request)
        {
            var copier = new ClassValueCopier();
            PedestrianCrossingLog newChildPart = copier.ConvertAndCopy <PedestrianCrossingLog, PedestrianCrossingRequest>(request);

            return(await _pedestrianRepository.AddAsync(newChildPart));
        }
예제 #2
0
        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();
        }