Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        /// <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());
        }
Esempio n. 4
0
        /// <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());
        }
Esempio n. 5
0
        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);
				}
			}