public override Task <DeviceDataArray> GetBulkDeviceData(DeviceDataRequest request, ServerCallContext context)
        {
            var response = new DeviceDataArray();

            response.Items.AddRange(_dataService.GetReadings(request.DataIterations));
            return(Task.FromResult(response));
        }
        public override async Task StreamDeviceData(DeviceDataRequest request, IServerStreamWriter <DeviceDataModel> responseStream, ServerCallContext context)
        {
            try
            {
                while (!context.CancellationToken.IsCancellationRequested)
                {
                    DeviceDataModel resultReply = _dataService.GetSingleReading();

                    if (context.CancellationToken.IsCancellationRequested)
                    {
                        context.CancellationToken.ThrowIfCancellationRequested();
                    }
                    await responseStream.WriteAsync(resultReply);
                }
            }
            catch (OperationCanceledException)
            {
                _logger.LogInformation("Stream cancelled by user request.");
            }
        }
        public override Task <DeviceDataModel> GetSingleDeviceData(DeviceDataRequest request, ServerCallContext context)
        {
            _dataService.GetSingleReading();

            return(Task.FromResult(_dataService.GetSingleReading()));
        }