示例#1
0
        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();
        }