public override async Task <object> ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger) { var httpContentToFormDataConverter = new HttpContentToFormDataConverter(); FormData multipartFormData = await httpContentToFormDataConverter.Convert(content); readStream.Position = 0; IFormDataConverterLogger logger; if (formatterLogger != null) { logger = new FormatterLoggerAdapter(formatterLogger); } else { logger = new FormDataConverterLogger(); } var dataToObjectConverter = new FormDataToObjectConverter(multipartFormData, logger, Settings); object result = dataToObjectConverter.Convert(type); logger.EnsureNoErrors(); return(result); }
public async Task <InputFormatterResult> ReadAsync(InputFormatterContext context) { Type type; IFormatterLogger formatterLogger; type = context.ModelType; formatterLogger = null; HttpContextToFormDataConverter httpContextToFormDataConverter = new HttpContextToFormDataConverter(); FormData multipartFormData = await httpContextToFormDataConverter.Convert(context.HttpContext.Request.Form); IFormDataConverterLogger logger; if (formatterLogger != null) { logger = new FormatterLoggerAdapter(formatterLogger); } else { logger = new FormDataConverterLogger(); } var dataToObjectConverter = new FormDataToObjectConverter(multipartFormData, logger, Settings); object result = dataToObjectConverter.Convert(type); logger.EnsureNoErrors(); return(await InputFormatterResult.SuccessAsync(result)); }