public string SerializeToText(TelemetryReport report) { return(SerializeToText(new List <TelemetryReport>() { report })); }
public void Deserialize_Report() { TelemetryReport tempReport = new TelemetryReport(); tempReport.LogDataPoint("int", 5); tempReport.LogDataPoint("string", "foo"); tempReport.LogDataPoint("double", 3.14); tempReport.LogDataPoint("bool", true); tempReport.SetLogTime(DateTime.UtcNow); tempReport.ErrorCode = 7; tempReport.StatusCode = 5; JsonSerializer serializer = new JsonSerializer(); string result = serializer.SerializeToText(tempReport); TelemetryReport report = serializer.DeserializeReports(result)[0]; Assert.AreEqual(DateTime.UtcNow.Year, report.ActivityTime.Year); Assert.AreEqual(5, report.StatusCode); Assert.AreEqual(7, report.ErrorCode); Assert.AreEqual((long)5, report.GetDataPointValue("int")); Assert.AreEqual("foo", report.GetDataPointValue("string")); Assert.AreEqual(3.14, report.GetDataPointValue("double")); Assert.AreEqual(true, report.GetDataPointValue("bool")); }
public List <TelemetryReport> DeserializeReports(string input) { var listOfDataPoints = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(input); var reports = new List <TelemetryReport>(); if (listOfDataPoints != null) { foreach (var dp in listOfDataPoints) { reports.Add(TelemetryReport.CreateReportFromDataPoints(dp)); } } return(reports); }
public void Serialize_Report() { TelemetryReport report = new TelemetryReport(); report.LogDataPoint("int", 5); report.LogDataPoint("string", "foo"); report.LogDataPoint("double", 3.14); report.LogDataPoint("bool", true); JsonSerializer serializer = new JsonSerializer(); string result = serializer.SerializeToText(report); Debug.WriteLine(result); }
public static byte[] RandomTelemetry(Guid makerId) { var random = new Random(); var report = new TelemetryReport { MakerId = makerId, UpTimeMeasure = random.Next(300, 22000), BeanCount = random.Next(100, 33000), WaterLevel = random.Next(0, 9), RandomMetricsA = Enumerable.Repeat(0, 500).Select(i => random.Next(0, 99)).ToArray(), RandomMetricsB = Enumerable.Repeat(0, 500).Select(i => random.Next(0, 99)).ToArray(), RandomMetricsC = Enumerable.Repeat(0, 500).Select(i => random.Next(0, 99)).ToArray(), }; return(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(report, Newtonsoft.Json.Formatting.None))); }
public override Task SaveToStorageAsync(TelemetryReport report) { // Determine PartitionKey var pkVar = report.GetDataPointValue("_telemAzurePartitionKey") as string; if (pkVar != null) { report.DeleteDataPoint("_telemAzurePartitionKey"); } var pk = ((pkVar != null) ? pkVar : StorageSettings.DefaultPartitionKey); #if WINDOWS_APP return(StorageTable.ExecuteAsync(BuildInsertOperation(report, pk)).AsTask()); #else return(StorageTable.ExecuteAsync(BuildInsertOperation(report, pk))); #endif }
private TableOperation BuildInsertOperation(TelemetryReport report, string partitionKey) { DynamicTableEntity entity = new DynamicTableEntity(partitionKey, Guid.NewGuid().ToString()); Dictionary <string, object> unmapped = new Dictionary <string, object>(); foreach (var dataPoint in report.GetDataPoints()) { if (!AzureColumnMap.ContainsKey(dataPoint.Key)) { unmapped.Add(dataPoint.Key, dataPoint.Value); } else { entity.Properties.Add(AzureColumnMap[dataPoint.Key], EntityProperty.GeneratePropertyForString(dataPoint.Value.ToString())); } } entity.Properties.Add(UnmappedColumn, EntityProperty.GeneratePropertyForString(Serializer.SerializeToText(unmapped))); return(TableOperation.Insert(entity)); }
/// <summary> /// Uploads a report to the report storage provider. /// </summary> /// <param name="report"></param> public abstract Task SaveToStorageAsync(TelemetryReport report);
public abstract Task WriteDataAsync(TelemetryReport report);