/// <inheritdoc /> protected override void OnOpenStream() { this.Data = DataManager.Instance.ReadStream <AnnotatedEvent>(this.Configuration.StreamBinding, DateTime.MinValue, DateTime.MaxValue); using (var reader = DataManager.Instance.GetReader(this.Configuration.StreamBinding)) { this.metadata = reader.AvailableStreams.First(s => s.Name == this.Configuration.StreamBinding.StreamName) as JsonStreamMetadata; this.definition = (reader as AnnotationSimpleReader).Definition; this.RaisePropertyChanged(nameof(this.Definition)); } }
public void Initialize() { this.booleanSchema = new AnnotationSchema("Boolean"); this.booleanSchema.AddSchemaValue(null, Color.Gray); this.booleanSchema.AddSchemaValue("false", Color.Red); this.booleanSchema.AddSchemaValue("true", Color.Green); this.definition = new AnnotatedEventDefinition("Definition"); this.definition.AddSchema(this.booleanSchema); this.metadata = new JsonStreamMetadata("Range", 1, typeof(AnnotatedEvent).AssemblyQualifiedName, this.name, this.path); }
public void JsonSimpleWriterTest() { using (var writer = new JsonSimpleWriter()) { writer.CreateStore(StoreName, OutputPath, false); IStreamMetadata metadata1 = new JsonStreamMetadata("Stream1", 1, TypeName, null, StoreName, OutputPath); IStreamMetadata metadata2 = new JsonStreamMetadata("Stream2", 2, TypeName, null, StoreName, OutputPath); List <Message <SimpleObject> > stream1 = new List <Message <SimpleObject> > { new Message <SimpleObject>(Data, FirstTime, FirstTime, 1, 0), new Message <SimpleObject>(Data, LastTime, LastTime, 1, 1), }; List <Message <SimpleObject> > stream2 = new List <Message <SimpleObject> > { new Message <SimpleObject>(Data, FirstTime, FirstTime, 2, 0), new Message <SimpleObject>(Data, LastTime, LastTime, 2, 1), }; writer.CreateStream(metadata1, stream1); writer.CreateStream(metadata2, stream2); writer.WriteAll(ReplayDescriptor.ReplayAll); } var escapedOutputPath = OutputPath.Replace(@"\", @"\\"); string expectedCatalog = "[{\"Name\":\"Stream1\",\"Id\":1,\"TypeName\":\"Test.Psi.Data.SimpleObject\",\"StoreName\":\"JsonStore\",\"StorePath\":\"" + escapedOutputPath + "\",\"FirstMessageCreationTime\":\"2017-11-01T09:15:30.12345Z\",\"LastMessageCreationTime\":\"2017-11-01T09:15:34.12345Z\",\"FirstMessageOriginatingTime\":\"2017-11-01T09:15:30.12345Z\",\"LastMessageOriginatingTime\":\"2017-11-01T09:15:34.12345Z\",\"MessageCount\":2,\"MessageSizeCumulativeSum\":606,\"LatencyCumulativeSum\":0,\"SupplementalMetadataTypeName\":null,\"OpenedTime\":\"0001-01-01T00:00:00\",\"ClosedTime\":\"9999-12-31T23:59:59.9999999\",\"IsClosed\":false},{\"Name\":\"Stream2\",\"Id\":2,\"TypeName\":\"Test.Psi.Data.SimpleObject\",\"StoreName\":\"JsonStore\",\"StorePath\":\"" + escapedOutputPath + "\",\"FirstMessageCreationTime\":\"2017-11-01T09:15:30.12345Z\",\"LastMessageCreationTime\":\"2017-11-01T09:15:34.12345Z\",\"FirstMessageOriginatingTime\":\"2017-11-01T09:15:30.12345Z\",\"LastMessageOriginatingTime\":\"2017-11-01T09:15:34.12345Z\",\"MessageCount\":2,\"MessageSizeCumulativeSum\":606,\"LatencyCumulativeSum\":0,\"SupplementalMetadataTypeName\":null,\"OpenedTime\":\"0001-01-01T00:00:00\",\"ClosedTime\":\"9999-12-31T23:59:59.9999999\",\"IsClosed\":false}]"; string expectedData = "[{\"Envelope\":{\"SourceId\":1,\"SequenceId\":0,\"OriginatingTime\":\"2017-11-01T09:15:30.12345Z\",\"Time\":\"2017-11-01T09:15:30.12345Z\"},\"Data\":{\"ArrayValue\":[0,1,2,3],\"BoolValue\":true,\"DateTimeValue\":\"2017-11-30T12:59:41.896745Z\",\"DoubleValue\":0.123456,\"IntValue\":123456,\"ListValue\":[4,5,6,7],\"StringValue\":\"abc\",\"TimeSpanValue\":\"01:02:03.4567890\"}},{\"Envelope\":{\"SourceId\":2,\"SequenceId\":0,\"OriginatingTime\":\"2017-11-01T09:15:30.12345Z\",\"Time\":\"2017-11-01T09:15:30.12345Z\"},\"Data\":{\"ArrayValue\":[0,1,2,3],\"BoolValue\":true,\"DateTimeValue\":\"2017-11-30T12:59:41.896745Z\",\"DoubleValue\":0.123456,\"IntValue\":123456,\"ListValue\":[4,5,6,7],\"StringValue\":\"abc\",\"TimeSpanValue\":\"01:02:03.4567890\"}},{\"Envelope\":{\"SourceId\":1,\"SequenceId\":1,\"OriginatingTime\":\"2017-11-01T09:15:34.12345Z\",\"Time\":\"2017-11-01T09:15:34.12345Z\"},\"Data\":{\"ArrayValue\":[0,1,2,3],\"BoolValue\":true,\"DateTimeValue\":\"2017-11-30T12:59:41.896745Z\",\"DoubleValue\":0.123456,\"IntValue\":123456,\"ListValue\":[4,5,6,7],\"StringValue\":\"abc\",\"TimeSpanValue\":\"01:02:03.4567890\"}},{\"Envelope\":{\"SourceId\":2,\"SequenceId\":1,\"OriginatingTime\":\"2017-11-01T09:15:34.12345Z\",\"Time\":\"2017-11-01T09:15:34.12345Z\"},\"Data\":{\"ArrayValue\":[0,1,2,3],\"BoolValue\":true,\"DateTimeValue\":\"2017-11-30T12:59:41.896745Z\",\"DoubleValue\":0.123456,\"IntValue\":123456,\"ListValue\":[4,5,6,7],\"StringValue\":\"abc\",\"TimeSpanValue\":\"01:02:03.4567890\"}}]"; string actualCatalog = string.Empty; string actualData = string.Empty; string catalogPath = Path.Combine(OutputPath, StoreName + ".Catalog.json"); using (var file = File.OpenText(catalogPath)) { actualCatalog = file.ReadToEnd(); } string dataPath = Path.Combine(OutputPath, StoreName + ".Data.json"); using (var file = File.OpenText(dataPath)) { actualData = file.ReadToEnd(); } File.Delete(catalogPath); File.Delete(dataPath); Assert.AreEqual(expectedCatalog, actualCatalog); Assert.AreEqual(expectedData, actualData); }