static void Main(string[] args) { GenericRecord originalEvent; GenericRecord deserializedEvent; var timestamp = DateTime.UtcNow; // Create a UserLoginEvent using GenericRecord originalEvent = new GenericRecord(UserLoginEventSchema); originalEvent.Add("timestamp", DateTimeToAvroTimestampMillis(timestamp)); originalEvent.Add("userID", "blachniet"); originalEvent.Add("wasSuccessful", true); using (var memoryStream = new MemoryStream()) { // Write the record to a memory stream { var binaryEncoder = new BinaryEncoder(memoryStream); var defaultWriter = new DefaultWriter(UserLoginEventSchema); defaultWriter.Write(originalEvent, binaryEncoder); binaryEncoder.Flush(); } // Reset the stream position before we read it memoryStream.Position = 0; // Read the record from the memory stream { var binaryDecoder = new BinaryDecoder(memoryStream); var defaultReader = new DefaultReader(UserLoginEventSchema, UserLoginEventSchema); deserializedEvent = defaultReader.Read <GenericRecord>(null, binaryDecoder); } } Console.WriteLine($@" Original Event: timestamp : {originalEvent["timestamp"]} userID : {originalEvent["userID"]} wasSuccessful : {originalEvent["wasSuccessful"]} Deserialized Event: timestamp : {deserializedEvent["timestamp"]} userID : {deserializedEvent["userID"]} wasSuccessful : {deserializedEvent["wasSuccessful"]} Press 'Enter' to exit. ".TrimStart()); Console.ReadLine(); }
public void AppendFileWithInvalidFile() { ListSerializable <User> users = new UserList(); users.Add(new User("Toto", "Titi")); users.Add(new User("Tata", "Roro")); IWriter <User> writer = new DefaultWriter <User>(new UserBasicSerializer());//take default serializer writer.Write <UserList>(users, TxtFile); ListSerializable <User> OtherUsers = new UserList(); OtherUsers.Add(new User("lala", "lala")); OtherUsers.Add(new User("test", "test")); writer.Append <UserList>(OtherUsers, "invalid.json", "users"); }
/// <summary> /// Write a record using the v1 schema which doesn't have the 'fieldB' field. Read that /// data using the v2 schema, which has 'fieldB' with 'bravo' as the default value. /// </summary> static void WriteV1ReadV2() { GenericRecord originalEntry; GenericRecord deserializedEntry; // Create an entry using the v1 schema originalEntry = new GenericRecord(EntryV1Schema); originalEntry.Add("fieldA", "Hello"); using (var memoryStream = new MemoryStream()) { // Write the record using the v1 schema { var binaryEncoder = new BinaryEncoder(memoryStream); var writer = new DefaultWriter(EntryV1Schema); writer.Write(originalEntry, binaryEncoder); } memoryStream.Position = 0; // Read the record using the v2 schema { var binaryDecoder = new BinaryDecoder(memoryStream); var defaultReader = new DefaultReader(EntryV1Schema, EntryV2Schema); deserializedEntry = defaultReader.Read <GenericRecord>(null, binaryDecoder); } } Console.WriteLine($@" V1 --> V2 --------------------------------------- Original Entry (v1): fieldA: {originalEntry["fieldA"]} fieldB: <does not exist in v1> Deserialized Entry (v2): fieldA: {deserializedEntry["fieldA"]} fieldB: {deserializedEntry["fieldB"]} ".TrimStart()); }
/// <summary> /// Write a record using the v2 schema. Read that data using the v1 schema, which doesn't /// have the 'fieldB' field. /// </summary> static void WriteV2ReadV1() { GenericRecord originalEntry; GenericRecord deserializedEntry; originalEntry = new GenericRecord(EntryV2Schema); originalEntry.Add("fieldA", "Hello"); originalEntry.Add("fieldB", "World"); using (var memoryStream = new MemoryStream()) { { var binaryEncoder = new BinaryEncoder(memoryStream); var writer = new DefaultWriter(EntryV2Schema); writer.Write(originalEntry, binaryEncoder); } memoryStream.Position = 0; { var binaryDecoder = new BinaryDecoder(memoryStream); var defaultReader = new DefaultReader(EntryV2Schema, EntryV1Schema); deserializedEntry = defaultReader.Read <GenericRecord>(null, binaryDecoder); } } Console.WriteLine($@" V2 --> V1 --------------------------------------- Original Entry (v2): fieldA: {originalEntry["fieldA"]} fieldB: {originalEntry["fieldB"]} Deserialized Entry (v1): fieldA: {deserializedEntry["fieldA"]} fieldB: <does not exist in v1> ".TrimStart()); }
public void GenericReaderDefault() { ListSerializable <User> users = new UserList(); users.Add(new User("Toto", "Titi")); users.Add(new User("Tata", "Roro")); IWriter <User> write = new DefaultWriter <User>(); write.Write <UserList>(users, CsvFile); IGenericReader <User> reader = new DefaultReader <User>(); ListSerializable <User> usersToCompare = reader.read <UserList>(CsvFile); Assert.IsNotNull(usersToCompare); Assert.AreEqual(users[0].Firstname, usersToCompare[0].Firstname); Assert.AreEqual(users[0].Name, usersToCompare[0].Name); Assert.AreEqual(users[1].Firstname, usersToCompare[1].Firstname); Assert.AreEqual(users[1].Name, usersToCompare[1].Name); }
public void Execute(IEngine engine) { DefaultWriter writer = engine.Writer as DefaultWriter; if (writer != null) { _action(writer, _arg.Value); } }