kreta/KretaWeb/Areas/Nyomtatvanyok/Controllers/BaseNyomtatvanyokController.cs
2024-03-13 00:33:46 +01:00

40 lines
1.4 KiB
C#

using System.IO;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public abstract class BaseNyomtatvanyokController : Controller
{
protected void AddZipEntry(ZipOutputStream zipOutput, Stream fileContent, string nyomtatvanyNeve, int? formatumId = null)
{
var buffer = new byte[Constants.General.BufferSize];
var entry = new ZipEntry(formatumId.HasValue ? $"{nyomtatvanyNeve}.{GetNyomtatvanyFileFormat(formatumId.Value)}" : nyomtatvanyNeve);
zipOutput.PutNextEntry(entry);
int sourceBytes;
do
{
sourceBytes = fileContent.Read(buffer, 0, buffer.Length);
zipOutput.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
protected string GetNyomtatvanyFileFormat(int formatumId)
{
switch (formatumId)
{
case (int)NyomtatvanyFormatumEnum.Word:
return Constants.ImportExport.FileFormatWord;
case (int)NyomtatvanyFormatumEnum.PDF:
return Constants.ImportExport.FileFormatPdf;
case (int)NyomtatvanyFormatumEnum.Excel:
return Constants.ImportExport.FileFormatXlsx;
default:
return Constants.ImportExport.FileFormatPdf;
}
}
}
}