274 lines
10 KiB
C#
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),
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|