57 lines
2.1 KiB
C#
57 lines
2.1 KiB
C#
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}"
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|