public Task <SaunaResponse> FetchCurrentState(SaunaRequest request) { if (_cachedResponse == null) { _cachedResponse = CreateSaunaResponse(0, request); } return(Task.FromResult(_cachedResponse)); }
public override async Task FetchStateStream(SaunaRequest request, IServerStreamWriter <SaunaResponse> responseStream, ServerCallContext context) { while (!context.CancellationToken.IsCancellationRequested) { await Task.Delay(1000); var message = new SaunaResponse { TimeStamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(), IsDrySauna = _randomGenerator.Next(0, 2) == 1, IsInfraRed = _randomGenerator.Next(0, 2) == 1, Temperature = GetTemperature(request.TemperatureUnit), Description = "" }; if (!context.CancellationToken.IsCancellationRequested) { await responseStream.WriteAsync(message); } } }