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

274 lines
10 KiB
C#

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<PanelBarChildModel>
{
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<bool>(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),
};
}
}
}
}