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