public static void PushEventHubAnomalyRecords(RealTimeVehicleHealthAnomalyReport record) { //Get dataset id from a table name string datasetId = GetAllDatasets().Datasets(datasetName).First()["id"].ToString(); record = CallMlApi(record); var records = new List <RealTimeVehicleHealthAnomalyReport> { record }; HttpWebRequest request = DatasetRequest(String.Format("{0}/{1}/tables/{2}/rows", datasetsUri, datasetId, AmlDatatable), "POST", AccessToken); var requestData = new SendRequest { rows = records }; PostRequest(request, JsonConvert.SerializeObject(requestData)); }
private static RealTimeVehicleHealthAnomalyReport CallMlApi(RealTimeVehicleHealthAnomalyReport record) { using (var client = new HttpClient()) { var scoreRequest = new { Inputs = new Dictionary <string, StringTable>() { { "data", new StringTable() { ColumnNames = new[] { "vin", "model", "timestamp", "outsidetemperature", "enginetemperature", "speed", "fuel", "engineoil", "tirepressure", "odometer", "city", "accelerator_pedal_position", "parking_brake_status", "headlamp_status", "brake_pedal_status", "transmission_gear_position", "ignition_status", "windshield_wiper_status", "abs" }, Values = new[, ] { { record.vin, record.Model, record.timestamp, record.outsideTemperature.ToString(), record.engineTemperature.ToString(), record.speed.ToString(), record.fuel.ToString(), record.engineoil.ToString(), record.tirepressure.ToString(), record.odometer.ToString(), record.city, record.accelerator_pedal_position.ToString(), record.parking_brake_status.ToString().ToLower() .Replace("true", "1") .Replace("false", "0"), record.headlamp_status.ToString().ToLower().Replace("true", "1").Replace("false", "0"), record.brake_pedal_status.ToString().ToLower() .Replace("true", "1") .Replace("false", "0"), record.transmission_gear_position.ToLower(), record.ignition_status.ToString().ToLower().Replace("true", "1").Replace("false", "0"), record.windshield_wiper_status.ToString().ToLower() .Replace("true", "1") .Replace("false", "0"), record.abs.ToString().ToLower().Replace("true", "1").Replace("false", "0") }, } } }, }, GlobalParameters = new Dictionary <string, string>() { } }; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AMLKey); client.BaseAddress = new Uri(AMLUrl); HttpResponseMessage response = client.PostAsJsonAsync("", scoreRequest).Result; if (response.IsSuccessStatusCode) { try { var result = response.Content.ReadAsStringAsync(); string responsefromml = result.Result; var obj = JsonConvert.DeserializeObject <dynamic>(responsefromml); string[] finalResult = obj.Results.data.value.Values.ToString().Split(','); string maintenanceLabel = finalResult[19].Replace("\r", "").Replace("\n", "").Replace("\"", ""); maintenanceLabel = maintenanceLabel.Trim(); record.MaintenanceLabel = Convert.ToInt32(maintenanceLabel); string maintenanceProbability = finalResult[20].Replace("\r", "").Replace("\n", "").Replace("]", "").Replace("\"", ""); maintenanceProbability = maintenanceProbability.Trim(); record.MaintenanceProbability = Convert.ToDouble(maintenanceProbability); string recallLabel = finalResult[21].Replace("\r", "").Replace("\n", "").Replace("\"", ""); recallLabel = recallLabel.Trim(); record.RecallLabel = Convert.ToInt32(recallLabel); string recallProbability = finalResult[22].Replace("\r", "").Replace("\n", "").Replace("]", "").Replace("\"", ""); recallProbability = recallProbability.Trim(); record.RecallProbability = Convert.ToDouble(recallProbability); } catch (Exception ex) { Console.WriteLine("Exception while parsing AML output: {0}", response.StatusCode); } } else { Console.WriteLine("Failed AML calling with status code: {0}", response.StatusCode); } } return(record); }