196 lines
8.1 KiB
C#
196 lines
8.1 KiB
C#
using System;
|
|
using System.Net;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Exceptions;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Core.FeatureToggle;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Adminisztracio.Models;
|
|
using Kreta.Web.Classes;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.Grid;
|
|
using Kreta.Web.Models.EditorTemplates;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
|
{
|
|
[MvcRoleClaimsAuthorize(true)]
|
|
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
|
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class TanarImportController : Controller
|
|
{
|
|
private IFeatureContext FeatureContext { get; }
|
|
|
|
private IUploadFileValidator UploadFileValidator { get; }
|
|
|
|
public TanarImportController(IFeatureContext featureContext, IUploadFileValidator uploadFileValidator)
|
|
{
|
|
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
|
|
UploadFileValidator = uploadFileValidator ?? throw new ArgumentNullException(nameof(uploadFileValidator));
|
|
}
|
|
|
|
// GET: Adminisztracio/TanarImport
|
|
public ActionResult Index()
|
|
{
|
|
var model = new TanarKIRImportModel
|
|
{
|
|
KirLoginModel = new KIRLoginModel()
|
|
{
|
|
OmAzonosito = ClaimData.OrganizationCode,
|
|
},
|
|
KIRImportEnabled = FeatureContext.IsEnabled(Core.Constants.FeatureName.KIRImport),
|
|
MaxAllowedFileSizeInBytes = UploadFileValidator.Configuration.ImportMaxAllowedFileSizeInBytes,
|
|
AllowedFileExtensions = UploadFileValidator.Configuration.ImportAllowedFileExtensions
|
|
};
|
|
|
|
return View(model);
|
|
}
|
|
|
|
public ActionResult OpenKIRTanarImportPopup(TanarKIRImportModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
try
|
|
{
|
|
var kirHelper = new KirHelper(ConnectionTypeExtensions.GetSessionConnectionType(), model.KirLoginModel.OmAzonosito, model.KirLoginModel.FelhasznaloNev, jelszo: model.KirLoginModel.Jelszo);
|
|
|
|
var tanaresTanuloKIRImportModel = new TanarKIRImportModel
|
|
{
|
|
TanevId = ClaimData.SelectedTanevID.Value,
|
|
FeladatellatasiHelyId = model.FeladatellatasiHelyId,
|
|
KIRImportModel = new KIRImportModel
|
|
{
|
|
OmAzonosito = model.KirLoginModel.OmAzonosito,
|
|
KirToken = kirHelper.KirToken,
|
|
TelephelyList = kirHelper.GetTelephelyList().ToSelectListItemList(),
|
|
FelhasznaloNev = model.KirLoginModel.FelhasznaloNev
|
|
},
|
|
KirLoginModel = new KIRLoginModel
|
|
{
|
|
OmAzonosito = model.KirLoginModel.OmAzonosito,
|
|
FelhasznaloNev = model.KirLoginModel.FelhasznaloNev
|
|
},
|
|
};
|
|
var pm = new PopUpModel(tanaresTanuloKIRImportModel, "KIRTanarImportModal");
|
|
pm.AddCancelBtn(pm, "KretaWindowHelper.destroyAllWindow");
|
|
pm.AddBtn(pm, "BtnKIRImport", 3486 /*Importálás*/, "KIRTanarImportHelper.KIRImport");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
|
|
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
|
}
|
|
|
|
public ActionResult KIRImport(TanarKIRImportModel model, int feladatellatasiHelyId)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var kirHelper = new KirHelper(ConnectionTypeExtensions.GetSessionConnectionType(), model.KIRImportModel.OmAzonosito, model.KIRImportModel.FelhasznaloNev, kirToken: model.KIRImportModel.KirToken);
|
|
|
|
var tanarList = kirHelper.GetPedagogusList(model.KIRImportModel.TelephelyKod.Value);
|
|
|
|
var egysegesImportHelper = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
egysegesImportHelper.ExecuteKIRTanarImport(tanarList);
|
|
}
|
|
|
|
return new HttpStatusCodeResult(HttpStatusCode.OK);
|
|
}
|
|
|
|
public ActionResult OpenTanarImportPopUp(int feladatellatasiHelyId)
|
|
{
|
|
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var tanarokFeltolteseModel = new TanarokFeltolteseModel
|
|
{
|
|
TanevId = ClaimData.SelectedTanevID.Value,
|
|
FeladatellatasiHelyId = feladatellatasiHelyId,
|
|
Errors = helper.TanarKIRAdatok.Validate()
|
|
};
|
|
|
|
var model = new PopUpModel(tanarokFeltolteseModel, "TanarokFeltolteseModal");
|
|
model.AddCancelBtn(model, "KretaWindowHelper.destroyAllWindow");
|
|
|
|
if (tanarokFeltolteseModel.Errors.Count == 0)
|
|
{
|
|
model.AddOkBtn(model, "KIRTanarFeltoltesHelper.Save");
|
|
}
|
|
|
|
return PartialView(Constants.General.PopupView, model);
|
|
}
|
|
|
|
public ActionResult UploadKIRTanarFile(HttpPostedFileBase importTanarFile)
|
|
{
|
|
UploadFileValidator.ValidateImportFile(importTanarFile);
|
|
|
|
try
|
|
{
|
|
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.ExecuteKIRTanarImportFile(importTanarFile.InputStream, importTanarFile.FileName, ClaimData.IsSzakkepzoIntezmeny);
|
|
}
|
|
catch (KretaInvalidFileFormatException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
|
|
return Content(string.Empty);
|
|
}
|
|
|
|
public ActionResult SaveTanarok(int feladatellatasiHelyId)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
|
helper.SaveImportaltTanarok(feladatellatasiHelyId);
|
|
|
|
return Json(new { tovabbUrl = @"/Alkalmazott/Alkalmazott" });
|
|
}
|
|
|
|
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
|
}
|
|
|
|
public ActionResult GetPreLoadedTeachers(DataSourceRequest request)
|
|
{
|
|
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
return Json(helper.GetImportaltTanarok().ToDataSourceResult(), JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public ActionResult DownloadTemplate()
|
|
{
|
|
string filePath = Kreta.Web.Classes.Utils.GetExcelTemplateFilePath(Constants.ImportExport.AlkalmazottImportSablonNev);
|
|
|
|
if (filePath == null)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.FajlNemLetezik);
|
|
}
|
|
|
|
return File(filePath, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.AlkalmazottImportSablonNev);
|
|
}
|
|
|
|
public ActionResult ExportAktualisAdatok()
|
|
{
|
|
var memoryStream = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ExportTanarAktualisAdatok();
|
|
return new FileStreamResult(memoryStream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = $"{AlkalmazottResource.Alkalmazottak_Export}.{Constants.ImportExport.FileFormatXlsx}" };
|
|
}
|
|
}
|
|
}
|