public IActionResult ExportMemberList() { Dictionary <Member, int> seatList = _seatService.GetAllMemberSeats(); using (var memoryStream = new MemoryStream()) { using (var streamWriter = new StreamWriter(memoryStream)) using (var csvWriter = new CsvWriter(streamWriter)) { csvWriter.WriteField("AzureId"); csvWriter.WriteField("DisplayName"); csvWriter.WriteField("FirstName"); csvWriter.WriteField("LastName"); csvWriter.WriteField("SeatNumber"); csvWriter.NextRecord(); foreach (var seat in seatList) { csvWriter.WriteField(seat.Key.AzureId); csvWriter.WriteField(seat.Key.DisplayName); csvWriter.WriteField(seat.Key.FirstName); csvWriter.WriteField(seat.Key.LastName); csvWriter.WriteField(seat.Value); csvWriter.NextRecord(); } }// StreamWriter gets flushed here. return(File(memoryStream.ToArray(), "application/octet-stream", "Reports.csv")); } }