112 lines
4.1 KiB
C#
112 lines
4.1 KiB
C#
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
|
|
}
|
|
}
|