using System; using System.IO; using System.Linq; using System.Web.Mvc; using ICSharpCode.SharpZipLib.Zip; using Kreta.BusinessLogic.Helpers; using Kreta.Resources; using Kreta.Web.Helpers; using Kreta.Web.Security; namespace Kreta.Web.Areas.Adatszolgaltatasok.Logic { public static class ItmAdatszolgaltatasLogic { public static FileStreamResult EllenorzoTablazatLetoltese() { var memoryStreamList = new ItmAdatszolgaltatasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IntezmenyAdatok(); var fajlNev = $"{ ClaimData.IntezmenyAzonosito }_{ AdatszolgaltatasokResource.ItmAdatszolgaltatasExcelExportFajlNev}_{ DateTime.Now.ToString("yyyyMMddHHmm")}"; if (memoryStreamList.Count == 1) { return new FileStreamResult(memoryStreamList.FirstOrDefault(), Constants.ImportExport.FileFormatXlsx) { FileDownloadName = $"{fajlNev}.{Constants.ImportExport.FileFormatXlsx}" }; } else { var outputStream = new MemoryStream(); var zipOutputStream = new ZipOutputStream(outputStream); var buffer = new byte[4096]; for (int i = 0; i < memoryStreamList.Count; i++) { var entry = new ZipEntry($"{fajlNev}_{i}.{Constants.ImportExport.FileFormatXlsx}"); zipOutputStream.PutNextEntry(entry); int sourceBytes; do { sourceBytes = memoryStreamList[i].Read(buffer, 0, buffer.Length); zipOutputStream.Write(buffer, 0, sourceBytes); } while (sourceBytes > 0); } zipOutputStream.Finish(); outputStream.Position = 0; return new FileStreamResult(outputStream, Constants.ImportExport.ContentType) { FileDownloadName = $"{fajlNev}.{Constants.ImportExport.FileFormatZip}" }; } } } }