public static OilTankReading Run([BlobTrigger("gauges/{name}", Connection = "OilTankStorage")] Stream myBlob, string name, TraceWriter log) { IGaugeReader gaugeReader = new VerticalNumberedFloatGauge(); IWeatherProvider weatherProvider = new WeatherBitProvider(); var pictureDate = DateTime.ParseExact(name.Substring(0, name.Length - 4), "yyyyMMddHHmm", null); log.Info($"Processing photo snapped on: {pictureDate}"); var postalCode = ConfigurationManager.AppSettings["Weather_PostalCode"]; var apiKey = ConfigurationManager.AppSettings["Weather_Key"]; var resultTask = SendToRecognizeTextApi(name); var weatherTask = weatherProvider.GetWeatherTempInFahrenheit(apiKey, postalCode); Task.WaitAll(new Task[] { resultTask, weatherTask }); var result = resultTask.Result; log.Info($"Reporting with weather in {postalCode}: {weatherTask.Result}F"); var outValue = gaugeReader.ProcessTextResult(log, new OilTankReading { ReadingDateTime = pictureDate }, result); outValue.TempF = weatherTask.Result; log.Info($"Results from analysis: {result.status}"); log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes"); return(outValue); }
public void ShouldReturn150() { // Arrange var azureReadings = JsonConvert.DeserializeObject <Rootobject>(File.ReadAllText(@"ExampleData.json")); var analyzer = new VerticalNumberedFloatGauge(); // Act var sut = analyzer.ProcessTextResult(_TraceWriter, new OilTankReading(), azureReadings); // Assert Assert.Equal(150, sut.Value); }
public void ShouldReturnFiveAfterValue() { var outValue = new VerticalNumberedFloatGauge().ProcessTextResult(_TraceWriter, new OilTankVision.Data.OilTankReading(), CreateTextResult(BoundingBox, TextDetected)); Assert.Equal(155D, outValue.Value); }