예제 #1
0
        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);
        }
예제 #3
0
        public void ShouldReturnFiveAfterValue()
        {
            var outValue = new VerticalNumberedFloatGauge().ProcessTextResult(_TraceWriter, new OilTankVision.Data.OilTankReading(), CreateTextResult(BoundingBox, TextDetected));

            Assert.Equal(155D, outValue.Value);
        }