public async Task <IActionResult> Export([FromBody] IEnumerable <ExportRectanglesViewModel> rectangles) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } List <Stream> pdfStreams = new List <Stream>(); foreach (var r in rectangles) { var rect = await _rectangleService.Get(r.Id); if (rect != null) { var strm = await _googleMapsService.GetMap(rect, r.ImageWidth, r.ImageHeight, r.Zoom); pdfStreams.Add(_pdfService.ImageToPdf(strm, r.ImageWidth)); } } var zipStream = await _zipService.MakeZip(pdfStreams.ToArray()); return(File(zipStream, "application/octet-stream", "map.zip")); }