public async Task<List<Body>> GetBodies(IByteStreamReader streamReader, ContentTypeFieldValue contentType, string transportEncoding) { var reader = new BufferedByteReader(streamReader); switch (contentType.Type) { case "multipart": var bodyPartReader = new BodyReader(ContentType, Header.ContentTransferEncoding); var bodies = await bodyPartReader.ReadBody(reader); break; case "text": var textString = ""; using (var memstream = await streamReader.GetMemoryStreamAsync()) { using (var unEncoded = await MailMethods.UnEncode(memstream, Header.ContentTransferEncoding)) { using (var textReader = new StreamReader(unEncoded, Encoding.GetEncoding(Header.ContentType.Charset))) { textString = await textReader.ReadToEndAsync(); } } } var textBody = new Body(); textBody.Content = (new MemoryStream(Encoding.Unicode.GetBytes(textString))); break; case "image": case "audio": case "video": case "application": var binaryBody = new Body(); binaryBody.Content = await streamReader.GetMemoryStreamAsync()); break; } }
public async Task <MemoryStream> GetMemoryStreamAsync() { return(await _byteReader.GetMemoryStreamAsync()); }