using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Mime; using System.Text; using System.Web; using System.Web.Mvc; using Aspose.Cells; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Enums.ManualEnums; using Kreta.Resources; using Kreta.Web.Areas.Adatszolgaltatasok.Logic; using Kreta.Web.Areas.Adatszolgaltatasok.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.Adatszolgaltatasok.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public class SZIRAdatszolgController : Controller { public ActionResult Index() { var szirStatHelper = new SZIRAdatszolgHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var isPanelsEditable = szirStatHelper.IsPanelsEditable(); var panelBarBaseModel = new PanelBarBaseModel { PanelName = "SZIRAdatszolgPanel", ChildModels = new List { new PanelBarChildModel() { PartialViewName = "Intezmeny_Partial", PartialViewTitle = SZIRAdatszolgResource.IntezmenyEllenorzes }, new PanelBarChildModel() { PartialViewName = "AMI_Partial", PartialViewTitle = SZIRAdatszolgResource.AMI }, new PanelBarChildModel() { PartialViewName = "Kollegium_Partial", PartialViewTitle = SZIRAdatszolgResource.KollegiumAdatszolgaltatas }, new PanelBarChildModel() { PartialViewName = "Oktatok_Partial", PartialViewTitle = SZIRAdatszolgResource.Oktatok }, new PanelBarChildModel() { PartialViewName = "NemOktatok_Partial", PartialViewTitle = SZIRAdatszolgResource.NemOktatok }, new SZIRAdatszolgInfraModel() { PartialViewName = "Infra_Partial", PartialViewTitle = SZIRAdatszolgResource.Infra, IsPanelEditable = isPanelsEditable }, new PanelBarChildModel() { PartialViewName = "Osztaly_Partial", PartialViewTitle = SZIRAdatszolgResource.Osztaly }, new PanelBarChildModel() { PartialViewName = "TanuloEvEleje_Partial", PartialViewTitle = SZIRAdatszolgResource.TanuloEvEleje }, new SZIRAdatszolgaltatasTanuloEvVegeModel() { PartialViewName = "TanuloEvVege_Partial", PartialViewTitle = SZIRAdatszolgResource.TanuloEvVege, IsPanelEditable = isPanelsEditable }, new SZIRAdatszolgaltatasKonyvtarModel() { PartialViewName = "Konyvtar_Partial", PartialViewTitle = SZIRAdatszolgResource.KonyvtarAdatszolgaltatas, IsPanelEditable = isPanelsEditable } } }; var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()); var isSzirStatAdatszolgBekuldeseEnabled = intezmenyConfigHelper.GetIntezmenyConfig(IntezmenyConfigModulEnum.SzirStatAdatszolgBekuldese, IntezmenyConfigTipusEnum.IsEnabled); var isAdatokRendbenABekuldeshez = szirStatHelper.IsAdatokRendbenABekuldeshez(); var model = new SZIRAdatszolgModel() { panelBarBaseModel = panelBarBaseModel, BekuldesDatum = szirStatHelper.GetBekuldesDatuma(), IsSzirStatAdatszolgBekuldeseEnabled = isSzirStatAdatszolgBekuldeseEnabled, IsAdatokRendbenABekuldeshez = isAdatokRendbenABekuldeshez }; return View("Index", model); } public ActionResult Intezmeny() { try { var wb = SZIRAdatszolgLogic.GetIntezmenyiAdatszolgSZIRStatContent(); return GetExcelFile(wb, "Intezmeny_OSAP_adatszolg_"); } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult Kollegium() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetKollegiumHeaderRow(wb); SZIRAdatszolgLogic.SetKollegiumContentRows(wb); return GetExcelFile(wb, "Kollegium_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult AMI() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetAmiHeaderRow(wb); SZIRAdatszolgLogic.SetAmiContentRows(wb); return GetExcelFile(wb, "AMI_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult Oktatok() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetOktatoHeaderRow(wb); SZIRAdatszolgLogic.SetOktatoContentRows(wb); return GetExcelFile(wb, "Oktato_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult NemOktatok() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetNemOktatoHeaderRow(wb); SZIRAdatszolgLogic.SetNemOktatoContentRows(wb); return GetExcelFile(wb, "Nem_oktato_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult Infra() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetInfraHeaderRow(wb); SZIRAdatszolgLogic.SetInfraContentRows(wb); return GetExcelFile(wb, "Infra_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult NemAllami() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetNemAllamiHeaderRow(wb); SZIRAdatszolgLogic.SetNemAllamiContentRows(wb); SZIRAdatszolgLogic.SetNemAllamiSegedMagyarazat(wb); return GetExcelFile(wb, "KSH2535_penzugyi_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult Osztaly() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetOsztalyHeaderRow(wb); SZIRAdatszolgLogic.SetOsztalyContentRows(wb); return GetExcelFile(wb, "Osztaly_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult TanuloEvEleje() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetTanuloEvElejeHeaderRow(wb); SZIRAdatszolgLogic.SetTanuloEvElejeContentRows(wb); return GetExcelFile(wb, "Tanulo_Ev_Eleje_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult TanuloEvVege() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetTanuloEvVegeHeaderRow(wb); SZIRAdatszolgLogic.SetTanuloEvVegeContentRows(wb); return GetExcelFile(wb, "Tanulo_Ev_Vege_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } public ActionResult Konyvtar() { try { using (var wb = new Workbook(FileFormatType.Xlsx)) { SZIRAdatszolgLogic.SetKonyvtarHeaders(wb); SZIRAdatszolgLogic.SetKonyvtarContentRows(wb); return GetExcelFile(wb, "Konyvtar_OSAP_adatszolg_"); } } catch (Exception ex) { throw new StatusError((int)HttpStatusCode.InternalServerError, ex.Message); } } private static ActionResult GetExcelFile(Workbook wb, string dokumentumNev) { using (var ms = new MemoryStream()) { wb.Save(ms, new OoxmlSaveOptions(SaveFormat.Xlsx)); ms.Position = 0; return new FileContentResult(ms.ToArray(), MediaTypeNames.Application.Octet) { FileDownloadName = HttpUtility.UrlEncode($"{dokumentumNev}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatXlsx}", Encoding.UTF8), }; } } } }