private void SetUpFilePathBuilder() { _filePathBuilder = Substitute.For <IFilePathBuilder>(); _filePathBuilder.BuildFilePath(_deviceName, _humiditySensorType, _date).Returns(_humidityFilePath); _filePathBuilder.BuildFilePath(_deviceName, _rainfallSensorType, _date).Returns(_rainfallFilePath); _filePathBuilder.BuildFilePath(_deviceName, _temperatureSensorType, _date).Returns(_temperatureFilePath); _filePathBuilder.BuildHistoricalFilePath(_deviceName, _humiditySensorType).Returns(_humidityHistoricalFilePath); _filePathBuilder.BuildHistoricalFilePath(_deviceName, _rainfallSensorType).Returns(_rainfallHistoricalFilePath); _filePathBuilder.BuildHistoricalFilePath(_deviceName, _temperatureSensorType).Returns(_temperatureHistoricalFilePath); }
private async Task <List <ISensorData> > Read(string deviceName, DateTime date, IParser parser) { var filePath = _filePathBuilder.BuildFilePath(deviceName, parser.Type, date); var blob = _blobClientProvider.GetBlobClient(filePath); if (await blob.ExistsAsync()) { using (var stream = await blob.OpenReadAsync()) { return(parser.ParseStream(stream)); } } else { var historicalFilePath = _filePathBuilder.BuildHistoricalFilePath(deviceName, parser.Type); blob = _blobClientProvider.GetBlobClient(historicalFilePath); if (await blob.ExistsAsync()) { using (var stream = await blob.OpenReadAsync()) { return(GetArchiveFile(stream, date, parser)); } } } return(new List <ISensorData>()); }