Ejemplo n.º 1
0
        public async Task Run(
            [ServiceBusTrigger("ams", "raw", Connection = "QueueConnection")] string mySbMsg
            , CancellationToken cancellationToken)
        {
            try
            {
                var raw = JsonSerializer.Deserialize <RawData>(mySbMsg);
                _rawRepository.Add(raw);
                var result = await _rawRepository.SaveChangesAsync(cancellationToken);

                var hdlcMessage = ParseMessage(raw.Raw);
                foreach (var data in hdlcMessage.Data)
                {
                    var detail = new Detail()
                    {
                        MeasurementId = raw.MeasurementId,
                        TimeStamp     = raw.TimeStamp,
                        Location      = raw.Location,
                        ObisCode      = data.ObisCode,
                        Unit          = data.Unit,
                        Name          = data.Name,
                        ValueStr      = data.Name,
                        ValueNum      = data.Value
                    };

                    _detailRepository.Add(detail);

                    Console.WriteLine(JsonSerializer.Serialize(detail));
                }

                result += await _detailRepository.SaveChangesAsync(cancellationToken);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                Console.WriteLine(ex.Message);
            }
        }