public async Task<FormData> Convert(MultipartMemoryStreamProvider multipartProvider) { var multipartFormData = new FormData(); foreach (var file in multipartProvider.Contents.Where(x => IsFile(x.Headers.ContentDisposition))) { var name = UnquoteToken(file.Headers.ContentDisposition.Name); string fileName = FixFilename(file.Headers.ContentDisposition.FileName); string mediaType = file.Headers.ContentType.MediaType; using (var stream = await file.ReadAsStreamAsync()) { byte[] buffer = ReadAllBytes(stream); if (buffer.Length > 0) { multipartFormData.Add(name, new RawFile(fileName, mediaType, buffer)); } } } foreach (var part in multipartProvider.Contents.Where(x => x.Headers.ContentDisposition.DispositionType == "form-data" && !IsFile(x.Headers.ContentDisposition))) { var name = UnquoteToken(part.Headers.ContentDisposition.Name); var data = await part.ReadAsStringAsync(); multipartFormData.Add(name, data); } return multipartFormData; }
public FormDataToObjectConverter(FormData sourceData, IFormDataConverterLogger logger) { if (sourceData == null) throw new ArgumentNullException("sourceData"); if (logger == null) throw new ArgumentNullException("logger"); SourceData = sourceData; Logger = logger; }
private void FillFlatPropertiesListFromFormData(FormData formData, List<KeyValuePair<string, object>> propertiesList) { foreach (var field in formData.Fields) { propertiesList.Add(new KeyValuePair<string, object>(field.Name, field.Value)); } foreach (var field in formData.Files) { propertiesList.Add(new KeyValuePair<string, object>(field.Name, field.Value)); } }