Пример #1
0
 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"));
        }
Пример #3
0
        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);
Пример #9
0
 public abstract Task WriteDataAsync(TelemetryReport report);