public async Task <ActionResult <IEnumerable <RobotTelemetry> > > PutTelemetriesAsync([FromBody] IEnumerable <RobotTelemetry> robotTelemetry) { try { await fleetManager.InsertTelemetriesAndUpdateRobotsAsync(robotTelemetry); } catch (Exception ex) { var badResult = new BadRequestObjectResult(ex.Message); return(badResult); } var okResult = new OkObjectResult(robotTelemetry); return(okResult); }
public async Task ProcessEventsAsync(PartitionContext context, IEnumerable <EventData> messages) { var telemetryMessages = new List <RobotTelemetry>(); foreach (var eventData in messages) { var data = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count); logger.LogDebug($"Message received. Partition: '{context.PartitionId}', Data: '{data}'"); var telemetry = ConvertToRobotTelemetry(data); if (telemetry != null) { telemetryMessages.Add(telemetry); } } await fleetManager.InsertTelemetriesAndUpdateRobotsAsync(telemetryMessages); await context.CheckpointAsync(); }