This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes.ExcelHelpers;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Tantargy.ApiControllers;
using Kreta.Web.Areas.Tantargy.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Tantargy.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
public class BaseTanmenetController : Controller
{
#region Properties
protected IKretaAuthorization Authorization { get; }
#endregion
public BaseTanmenetController(IKretaAuthorization authorization)
{
Authorization = authorization ?? throw new ArgumentNullException(nameof(authorization));
}
#region Popup actions
[NonAction]
public ActionResult OpenNewTanmenetWindow(NewTanmenetModel model)
{
var pm = new PopUpModel(model, "~/Areas/Tantargy/Views/Tanmenet/NewTanmenet_Bevitel.cshtml");
pm = pm.AddCancelBtn(pm, "TanmenetHelper.newTanmenetCancel");
pm = pm.AddBtn(pm, "openNewTanmenetGrid", CommonResource.Tovabb, "TanmenetHelper.openNewTanmenetGrid");
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
protected ActionResult OpenEditTanmenetGridWindow(TanmenetOrakModel model)
{
if (!string.IsNullOrWhiteSpace(model.FoglalkozasId_input))
{
model.TanmenetModalHeader = TantargyResource.UjTanmenet + model.FoglalkozasId_input;
}
else
{
model.TanmenetModalHeader = TantargyResource.Tanmenet + new BaseTanmenetApiController().GetTanmenetModalHeader(model.TantargyId, model.OsztalyId);
}
var pm = new PopUpModel(model, "~/Areas/Tantargy/Views/Tanmenet//EditTanmenetGrid_Bevitel.cshtml");
pm = pm.AddBtn(pm, "TanmenetGridCancelBtn", AdminisztracioResource.Megsem, "TanmenetHelper.editTanmenetGridCancel");
pm = pm.AddBtn(pm, "SaveTanmenet", CommonResource.Mentes, "TanmenetHelper.saveTanmenetOrak");
return PartialView(Constants.General.PopupView, pm);
}
#endregion
#region Export actions
[NonAction]
public string ExportTanmenet(int tantargyId, int osztalyId)
{
var memoryStream = GetTanmenetExport(tantargyId, osztalyId);
if (memoryStream != null)
{
return Convert.ToBase64String(memoryStream.ToArray());
}
return ImportExportCommonResource.NincsElegendoAdatARendszerbenAzExportalashoz;
}
private MemoryStream GetTanmenetExport(int tantargyId, int osztalyId)
{
var manager = new ExcelExportManager();
var exportFile = new ExcelExportItem();
exportFile.AddColumn(0, TanmenetResource.Oraszam);
exportFile.AddColumn(1, TanmenetResource.Tema);
var rowIndex = 2;
var tanmenetHelper = new TanmenetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var ds = tanmenetHelper.GetTanmenetek(tantargyId, osztalyId, ClaimData.FelhasznaloId);
foreach (var row in ds.Tables[0].AsEnumerable())
{
exportFile.AddCell(rowIndex, 0, row.Field<int>("Oraszam"));
exportFile.AddCell(rowIndex, 1, row.Field<string>("Tema"));
rowIndex++;
}
// mindenképp 2000-ig feltöltjük az excelt
for (; rowIndex < 2001; rowIndex++)
{
exportFile.AddCell(rowIndex, 0, rowIndex);
exportFile.AddCell(rowIndex, 1, string.Empty);
}
return manager.CreateExcelExport(new List<ExcelExportItem> { exportFile });
}
#endregion
}
}