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; } } } }