private ODataWriter CreateWriterImplementation(string parameterName, bool writingFeed) { var subSchema = this.GetSubSchema(parameterName); if (writingFeed) { subSchema = ODataAvroSchemaGen.GetItemSchema(subSchema); } return(new ODataAvroWriter( this.outputContext, obj => { this.record[parameterName] = obj; }, subSchema, writingFeed)); }
public TypeSchema UpdateSchema(object value, IEdmType edmType, bool collection = false) { TypeSchema schema = null; if (edmType != null) { try { schema = ODataAvroSchemaGen.GetSchemaFromModel(edmType); } catch (ApplicationException) { } } if (schema == null) { if (value == null) { return(null); } schema = ODataAvroSchemaGen.GetSchema(value); } TypeSchema single = AvroSerializer.CreateGeneric(schema.ToString()).WriterSchema; if (collection) { schema = ODataAvroSchemaGen.GetArraySchema(schema); single = ((ArraySchema)AvroSerializer.CreateGeneric(schema.ToString()).WriterSchema).ItemSchema; } var writer = AvroContainer.CreateGenericWriter(schema.ToString(), stream, true, Codec.Null); this.seqWriter = new SequentialWriter <object>(writer, 16); return(single); }