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); }
private static bool IsSpeeding(ProcessedTelemetryMessageModel message) { bool isSpeeding = message.OriginalTelemetry.Velocity > 130; return(isSpeeding); }