Example #1
0
        public WeatherMeasurements GetWeatherMeasurements(string deviceId, string measuredDate, string sensorType)
        {
            try
            {
                CreateStorageAccountFromConnectionString();

                // Create file path from deviceId, sensorType and measuredDate
                var prefix   = string.Join("/", deviceId, sensorType);
                var fileName = string.Join(".", measuredDate, "csv");
                var path     = string.Join("/", prefix, fileName);

                // Create a blob client for interacting with the blob service.
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

                // Create a container for organizing blobs within the storage account.
                CloudBlobContainer container = blobClient.GetContainerReference(CONTAINER);

                CloudAppendBlob appendBlob = container.GetAppendBlobReference(path);

                if (appendBlob.Exists())
                {
                    WeatherMeasurements weatherMeasurements = new WeatherMeasurements(deviceId, measuredDate, sensorType);
                    using (var memoryStream = new MemoryStream())
                    {
                        appendBlob.DownloadToStream(memoryStream);
                        memoryStream.Position = 0;
                        var text = Encoding.ASCII.GetString(memoryStream.ToArray());
                        using (var reader = new StreamReader(memoryStream, Encoding.ASCII))
                        {
                            string line = String.Empty;
                            while ((line = reader.ReadLine()) != null)
                            {
                                string[]           val    = line.Split(';');
                                AtomicMeasurements atomic = new AtomicMeasurements(val[0], val[1]);
                                weatherMeasurements.Measurements.Add(atomic);
                            }
                        }
                    }
                    return(weatherMeasurements);
                }
                else
                {
                    throw new FileNotFoundException();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }