using LiteDB; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Telemetry.Helpers; namespace Tango.Telemetry { public class TelemetryBase : ITelemetry { public string ID { get; set; } public DateTime Time { get; set; } public TelemetryBase() { ID = Guid.NewGuid().ToString(); Time = DateTime.UtcNow; } [BsonIgnore] //This will be used for column mapping in ADX public String Type { get { return this.ToTelemetryName(); } } public byte[] ToBytes(Formatting format = Formatting.None, bool flatten = true) { return Encoding.UTF8.GetBytes(ToJson(format, flatten)); } public string ToJson(Formatting format = Formatting.None, bool flatten = true) { if (flatten) { return JsonFlattener.FlattenObjectToFlatJson(this, format); } else { return JsonConvert.SerializeObject(this, format); } } } }