public static ProcessedTelemetryMessageModel Run(
            [CosmosDBTrigger("testdb", "telemetry", ConnectionStringSetting = "CosmosDbConnection", CreateLeaseCollectionIfNotExists = true)]
            IReadOnlyList <Document> telemetryDocuments,
            [DocumentDB("testdb", "drivers", ConnectionStringSetting = "CosmosDbConnection")] IEnumerable <DriverModel> drivers,
            ILogger log)
        {
            foreach (var document in telemetryDocuments)
            {
                try
                {
                    var telemetryModel = JsonConvert.DeserializeObject <TelemetryMessageModel>(document.ToString());

                    log.LogInformation($"Processing Telemetry document for {telemetryModel.DeviceId} ...");

                    // Assign driver information
                    var driver = drivers.FirstOrDefault(d => d.Id == telemetryModel.DeviceId);
                    if (driver == null)
                    {
                        throw new InvalidOperationException($"Driver for Vehicle {telemetryModel.DeviceId} not found!");
                    }

                    // Create processed data record
                    var processedTelemetry = new ProcessedTelemetryMessageModel(telemetryModel, document.Id, driver.Name);

                    // return processed data record for storage
                    return(processedTelemetry);
                }
                catch (Exception ex)
                {
                    log.LogError($"Exception occurred processing document {document.Id}: [{ex.Message}]");
                }
            }

            return(null);
        }
        public static ProcessedTelemetryMessageModel Run(
            [CosmosDBTrigger("testdb", "telemetry", ConnectionStringSetting = "CosmosDbConnection", CreateLeaseCollectionIfNotExists = true)]
            IReadOnlyList <Document> telemetryDocuments,
            ILogger log)
        {
            foreach (var document in telemetryDocuments)
            {
                try
                {
                    var telemetryModel = JsonConvert.DeserializeObject <TelemetryMessageModel>(document.ToString());

                    log.LogInformation($"Processing Telemetry document for {telemetryModel.DeviceId} ...");

                    // return processed data record for storage
                    var processedTelemetry = new ProcessedTelemetryMessageModel(telemetryModel, document.Id);

                    return(processedTelemetry);
                }
                catch (Exception ex)
                {
                    log.LogError($"Exception occurred processing document {document.Id}: [{ex.Message}]");
                }
            }

            return(null);
        }
示例#3
0
        private static bool IsSpeeding(ProcessedTelemetryMessageModel message)
        {
            bool isSpeeding = message.OriginalTelemetry.Velocity > 130;

            return(isSpeeding);
        }