public static async void Run([IoTHubTrigger("messages/events", Connection = "IoTConn", ConsumerGroup = "azurefunction")] EventData message, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var messageString = Encoding.UTF8.GetString(message.Body.Array); string messageType = null; JObject jsonObject = JObject.Parse(messageString); if (jsonObject.ContainsKey("Type")) { messageType = (string)jsonObject["Type"]; } if (messageType == "tracker") { var trackerMessage = JsonConvert.DeserializeObject <TrackerMessage>(messageString); var trackerDocument = TrackerDocument.Create(trackerMessage); if (trackerDocument != null) { await createDocument <TrackerDocument>(trackerDocument); } } else if (messageType == "balloon") { var balloonMessage = JsonConvert.DeserializeObject <BalloonMessage>(messageString); var balloonDocument = BalloonDocument.Create(balloonMessage); if (balloonDocument != null) { await createDocument <BalloonDocument>(balloonDocument); } } }
public PredictionDocument Generate(BalloonDocument balloonDocument, ILogger log) { HabHubMessage habHubMessage = new HabHubMessage(); habHubMessage.alt = balloonDocument.Altitude; habHubMessage.burst = balloonDocument.BurstAltitude; habHubMessage.lat = balloonDocument.Latitude; habHubMessage.lon = balloonDocument.Longitude; habHubMessage.ascent = balloonDocument.AveAscent; return(CreateHabHubPrediction(habHubMessage).Result); }