public override async Task RequestTelemetryStream(WindmillInfoRequest request, IServerStreamWriter <WindmillTelemetryResponse> responseStream, ServerCallContext context) { while (!context.CancellationToken.IsCancellationRequested) { //TODO add business logic to receive last event only once var last = windmillsDataReader.GetTelemetryValues(Guid.Parse(request.WindmillId)).LastOrDefault(); _logger.LogInformation($"Sending windmill info for {last?.WindmillId} at {last?.EventTime}."); await responseStream.WriteAsync(last); // simulemos más trabajo await Task.Delay(1000); } }
public override Task <WindmillTelemetryResponse> RequestTelemetry(WindmillInfoRequest request, ServerCallContext context) { return(Task.FromResult(windmillsDataReader.GetTelemetryValues(Guid.Parse(request.WindmillId)).LastOrDefault())); }