public async Task Write(Stream stream, Article product) { using (var xmlStream = new MemoryStream()) { await _xmlFormatter.Write(xmlStream, product); xmlStream.Position = 0; using (var xmlReader = new StreamReader(xmlStream)) using (var pdfStream = new MemoryStream()) { string xml = xmlReader.ReadToEnd(); _documentGenerator.SaveAsPdf(xml, null, pdfStream); pdfStream.Position = 0; await pdfStream.CopyToAsync(stream); } } }