public void ValidateExistingType(
            EventType existingType,
            AvroSchemaEventType proposedType)
        {
            if (!(existingType is AvroSchemaEventType)) {
                throw new EventAdapterException(
                    "Type by name '" +
                    proposedType.Name +
                    "' is not a compatible type " +
                    "(target type underlying is '" +
                    existingType.UnderlyingType.Name +
                    "', " +
                    "source type underlying is '" +
                    proposedType.UnderlyingType.Name +
                    "')");
            }

            var proposed = (Schema) proposedType.Schema;
            var existing = (Schema) ((AvroSchemaEventType) existingType).Schema;
            if (!proposed.Equals(existing)) {
                throw new EventAdapterException(
                    "Event type named '" +
                    existingType.Name +
                    "' has already been declared with differing column name or type information\n" +
                    "schemaExisting: " +
                    AvroSchemaUtil.ToSchemaStringSafe(existing) +
                    "\n" +
                    "schemaProposed: " +
                    AvroSchemaUtil.ToSchemaStringSafe(proposed));
            }
        }