Ejemplo n.º 1
0
        public async Task ProccesMessage(MQTTMessageDTO message)
        {
            _logger.LogInformation("Received message. {@Message}", message);
            await Task.Run(() =>
            {
                var data = Serializer.DeserializeToObject <RawSensorData>(message.Payload);

                var spotName = data.Name;

                if (spotName == null || string.IsNullOrEmpty(spotName))
                {
                    _logger.LogError("Message received with empty spotName");
                    return;
                }

                var cachedSpot = _cache.GetOrCreate(spotName, () =>
                {
                    AddIdToWatchedEntries(spotName);
                    return(new SpotData()
                    {
                        SensorDevui = data.Deveui,
                        Name = data.Name,
                        ParkEntries = new ConcurrentBag <ParkEntry>()
                    });
                });


                cachedSpot.ParkEntries.Add(new ParkEntry()
                {
                    TimeStamp = UnixTimestampToDateTime(data.Timestamp),
                    //ak 1, stojí tam auto
                    Parked = data.Status == 1
                });
            });
        }
Ejemplo n.º 2
0
 public abstract Task HandleMessageAsync(MQTTMessageDTO arg);
Ejemplo n.º 3
0
 public override async Task HandleMessageAsync(MQTTMessageDTO arg)
 {
     await _serviceFactory.CreateScope().ServiceProvider.GetService <IMQTTDataHandler>().ProccesMessage(arg);
 }
 public MQTTMessageReceivedGateResponse(MQTTMessageDTO message, bool succes = false) : base(succes)
 {
     Message = message;
 }