init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,121 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.ApiControllers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Models;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
public class AdatszotarController : Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// Default view visszaadás
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ActionResult Index()
|
||||
=> View(nameof(Index), new AdatszotarSearchModel());
|
||||
|
||||
/// <summary>
|
||||
/// Új adatszótár felviteli popup
|
||||
/// </summary>
|
||||
/// <param name="adatszotarTipus"></param>
|
||||
/// <returns></returns>
|
||||
public ActionResult OpenAdatszotarNewPopUp(int adatszotarTipusId)
|
||||
{
|
||||
if (Core.Constants.NemBovithetoAdatszotarTipusLista.Contains(adatszotarTipusId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.KivalasztottAdatszotarNemBovitheto);
|
||||
}
|
||||
|
||||
var tipusok = GetAdatszotarTipusList(false);
|
||||
|
||||
var model = new AdatszotarGridModel();
|
||||
model.AdatszotarTipusList = tipusok;
|
||||
model.AdatszotarTipusNev = ((GeneratedAdatszotarTipusEnum)adatszotarTipusId).ToString();
|
||||
model.AdatszotarTipusId = adatszotarTipusId;
|
||||
model.Sorszam = GetAdatszotarSorszam((GeneratedAdatszotarTipusEnum)adatszotarTipusId);
|
||||
model.ZaradekSzovegList = ZaradekSzovegModel.AdatszotarNyelvCoToZaradekSzovegModel();
|
||||
|
||||
if (adatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod)
|
||||
{
|
||||
model.Suly = ErtekelesModCo.DefaultSuly;
|
||||
}
|
||||
var pm = new PopUpModel(model, "Adatszotar_Bevitel");
|
||||
|
||||
|
||||
pm.AddCancelBtn(pm, "AdatszotarHelper.newCancel");
|
||||
pm.AddOkBtn(pm, "AdatszotarHelper.newSave");
|
||||
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adatszótár módosításkori popup
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public ActionResult OpenAdatszotarModPopUp(int id)
|
||||
{
|
||||
AdatszotarGridModel model = new AdatszotarApiController().GetAdatszotarElem(id);
|
||||
model.AdatszotarTipusList = GetAdatszotarTipusList();
|
||||
|
||||
var pm = new PopUpModel(model, "Adatszotar_Bevitel");
|
||||
|
||||
pm.AddCancelBtn(pm, "AdatszotarHelper.modifiedCancel");
|
||||
pm.AddOkBtn(pm, "AdatszotarHelper.modifiedSave");
|
||||
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adatszótár típus lista
|
||||
/// </summary>
|
||||
/// <param name="getDefaultValue"></param>
|
||||
/// <returns></returns>
|
||||
private List<SelectListItem> GetAdatszotarTipusList(bool getDefaultValue = true)
|
||||
{
|
||||
var tipusok = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEditableAdatszotarTipusok().OrderBy(x => x.megnevezes).ToList();
|
||||
|
||||
var sli = new List<SelectListItem>();
|
||||
|
||||
if (getDefaultValue)
|
||||
{
|
||||
sli.Add(new SelectListItem() { Value = "-1", Text = CommonResource.KeremValasszon });
|
||||
}
|
||||
|
||||
foreach ((int id, string megnevezes) in tipusok)
|
||||
{
|
||||
sli.Add(new SelectListItem() { Value = id.ToString(), Text = megnevezes });
|
||||
}
|
||||
|
||||
return sli;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Új adatszótár sorszám visszadása
|
||||
/// </summary>
|
||||
/// <param name="adatszotarTipus"></param>
|
||||
/// <returns></returns>
|
||||
private int? GetAdatszotarSorszam(GeneratedAdatszotarTipusEnum adatszotarTipus)
|
||||
{
|
||||
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
return helper.GetAdatszotarMaxSorszam(adatszotarTipus) + 1;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Runtime.Caching;
|
||||
using System.Text;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.ApiControllers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Controllers.Logic;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
public class AktivTanevValtasaController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
=> View("Index", new AktivTanevValtasaApiController().GetAktivTanevValtasaModel());
|
||||
|
||||
[HttpPost]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public ActionResult AktivTanevValtasa(int? kiNemSoroltTanulokOsztaly, int? alkalmazottakAlapertekekkel)
|
||||
{
|
||||
if (ClaimData.KovTanevID.HasValue && (!alkalmazottakAlapertekekkel.HasValue || alkalmazottakAlapertekekkel.Value == 0))
|
||||
{
|
||||
if ((!kiNemSoroltTanulokOsztaly.HasValue || kiNemSoroltTanulokOsztaly.Value == 0))
|
||||
{
|
||||
try
|
||||
{
|
||||
var cache = MemoryCache.Default;
|
||||
cache.Remove($"{ClaimData.IntezmenyAzonosito}_mobileIntezmenyAdatok");
|
||||
|
||||
new AdminHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AktivTanevValtasa(ClaimData.SelectedTanevID.Value, ClaimData.KovTanevID.Value);
|
||||
|
||||
HttpContext.Items.Remove(nameof(UserContext));
|
||||
|
||||
new AdminHelper(ConnectionTypeExtensions.GetSystemConnectionType()).ElozoTanevesViewokTorlese(ClaimData.KovTanevID.Value);
|
||||
|
||||
MasterLayoutLogic.LogOut();
|
||||
|
||||
return new JsonResult()
|
||||
{
|
||||
Data = new
|
||||
{
|
||||
url = Url.Action("Index", "Login", new { area = "Adminisztracio" })
|
||||
}
|
||||
};
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new HttpStatusCodeResult(500);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return new HttpStatusCodeResult(400);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return new HttpStatusCodeResult(406);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public ActionResult AlkalmazottTorles(List<TanevValtasAlkalmazottTorlesGridModel> torlendoAlkalmazottak)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (var item in torlendoAlkalmazottak)
|
||||
{
|
||||
try
|
||||
{
|
||||
new AlkalmazottHelper(ConnectionTypeExtensions.GetNextSessionConnectionType()).DeleteAlkalmazott(item.AlkalmazottId.Value);
|
||||
}
|
||||
catch
|
||||
{
|
||||
sb.AppendFormat(AdminisztracioResource.AlkalmazottTorlesNemSikerult, item.AlkalmazottNev);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (sb.Length > 0)
|
||||
{
|
||||
sb.Append(AdminisztracioResource.FolytatjaTanevValtast);
|
||||
throw new StatusError(500, sb.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
return new JsonResult();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,491 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Configuration;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
using Kreta.Web.Utils;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
public class BelepesKezeloController : Controller
|
||||
{
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> EUgyinteztesPermissions = new List<SzerepkorTipusEnum>
|
||||
{
|
||||
SzerepkorTipusEnum.eUgyintezo,
|
||||
SzerepkorTipusEnum.Alairo,
|
||||
SzerepkorTipusEnum.Penztaros,
|
||||
SzerepkorTipusEnum.PenzugyiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiEllenorzo,
|
||||
SzerepkorTipusEnum.TeremberletJelenletEllenorzo,
|
||||
SzerepkorTipusEnum.alkalmazott,
|
||||
SzerepkorTipusEnum.BelepokartyaAdmin
|
||||
};
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> DKTPermissions = new List<SzerepkorTipusEnum> { SzerepkorTipusEnum.Naplo, SzerepkorTipusEnum.Ellenorzo, };
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> ESLPermissions = new List<SzerepkorTipusEnum> { SzerepkorTipusEnum.FokuszMonitoring, };
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> FokuszPermissions = new List<SzerepkorTipusEnum> { SzerepkorTipusEnum.Naplo, SzerepkorTipusEnum.FokuszMonitoring, };
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> LeltarPermissions = new List<SzerepkorTipusEnum> { SzerepkorTipusEnum.LeltarConcerned, };
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> eJelentkezesPermissions = new List<SzerepkorTipusEnum> { SzerepkorTipusEnum.Adminisztrator, };
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> Permissions = new List<SzerepkorTipusEnum>
|
||||
{
|
||||
SzerepkorTipusEnum.eUgyintezo,
|
||||
SzerepkorTipusEnum.Alairo,
|
||||
SzerepkorTipusEnum.Penztaros,
|
||||
SzerepkorTipusEnum.PenzugyiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiEllenorzo,
|
||||
SzerepkorTipusEnum.TeremberletJelenletEllenorzo,
|
||||
SzerepkorTipusEnum.FokuszMonitoring,
|
||||
SzerepkorTipusEnum.IskolaEgeszsegugyiKoordinator,
|
||||
SzerepkorTipusEnum.Vedono,
|
||||
SzerepkorTipusEnum.Iskolaorvos,
|
||||
SzerepkorTipusEnum.IskolaEgeszsegugyiAsszisztens,
|
||||
SzerepkorTipusEnum.IskolaEgeszsegugyiLekerdezo,
|
||||
SzerepkorTipusEnum.BelepokartyaAdmin,
|
||||
SzerepkorTipusEnum.LeltarConcerned,
|
||||
SzerepkorTipusEnum.Konyvtaros,
|
||||
SzerepkorTipusEnum.FELTAR_EsetKezelo,
|
||||
SzerepkorTipusEnum.FELTAR_EszkozMenedzser,
|
||||
SzerepkorTipusEnum.KerdoivKitolto_KerdoivKezelo,
|
||||
SzerepkorTipusEnum.FELTAR_EsetJovahagyo,
|
||||
SzerepkorTipusEnum.FELTAR_EsetKozremukodo,
|
||||
SzerepkorTipusEnum.FELTAR_Munkavegzo,
|
||||
SzerepkorTipusEnum.FELTAR_SzerzodesMenedzser
|
||||
};
|
||||
|
||||
private IIdpConfiguration IdpConfiguration { get; }
|
||||
|
||||
public BelepesKezeloController(IIdpConfiguration idpConfiguration)
|
||||
{
|
||||
IdpConfiguration = idpConfiguration ?? throw new ArgumentNullException(nameof(idpConfiguration));
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
var felhasznaloSzerepkorok = ClaimData.FelhasznaloSzerepkorok;
|
||||
// NOTE: Ha a felhasználó szerepkörök között szerepel kréta adminisztrátor és amellett szervezethez köthető szerepkör(pl.: duális adminisztrátor),
|
||||
// akkor azokat nem kell megjeleníteni, mert azok részei az intézményi kréta admin felületének/menüjének, ezért az ilyen szerepköröket kivesszük a listából.
|
||||
if (felhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Adminisztrator) && felhasznaloSzerepkorok.Any(x => FelhasznaloHelper.SzervezetiPermissions.Contains(x.Key)))
|
||||
{
|
||||
foreach (var szerepkorTipusEnum in FelhasznaloHelper.SzervezetiPermissions)
|
||||
{
|
||||
felhasznaloSzerepkorok.Remove(szerepkorTipusEnum);
|
||||
}
|
||||
}
|
||||
|
||||
var allowedRoles = GetAllowedRoles(felhasznaloSzerepkorok);
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(allowedRoles.Any() ? allowedRoles.Select(x => x.Key).ToList() : felhasznaloSzerepkorok.Keys.Any() ? felhasznaloSzerepkorok.Select(x => x.Key).ToList() : new List<SzerepkorTipusEnum>(), GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
|
||||
if (ClaimData.JustLEPOrganization && !ClaimData.FelhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Adminisztrator))
|
||||
{
|
||||
var lepEloadasJegyzekHelper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var hasLepAccess = lepEloadasJegyzekHelper.HasLEPAccess(ClaimData.FelhasznaloId);
|
||||
|
||||
if (!hasLepAccess)
|
||||
{
|
||||
return Redirect(Url.Content(@"~/HibaOldal/IndexLEPNincsJog"));
|
||||
}
|
||||
|
||||
return Redirect(Url.Content(@"~/LEPModul/EloadasokKezelese"));
|
||||
}
|
||||
|
||||
// NOTE: Ha a belépett felhasználó szervezethez köthető alkalmazott(pl.: duális oktató), akkor semmi más ne jelenjen meg csak a szervezethez köthető elemek.
|
||||
var isAlkalmazottSzervezeti = new SzervezetHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsAlkalmazottSzervezeti(ClaimData.FelhasznaloId);
|
||||
if (isAlkalmazottSzervezeti)
|
||||
{
|
||||
if (allowedRoles.Count == 1)
|
||||
{
|
||||
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
|
||||
}
|
||||
|
||||
return View("Index", ModelBuilder(allowedRoles, false, false, false, false, false, false, false));
|
||||
}
|
||||
|
||||
var isDktAktiv = IsDktAktiv(felhasznaloSzerepkorok);
|
||||
var isEugyAktiv = IsEugyAktiv(felhasznaloSzerepkorok);
|
||||
var isEslAktiv = IsESLAktiv(felhasznaloSzerepkorok);
|
||||
var isFokuszAktiv = IsFokuszAktiv(felhasznaloSzerepkorok);
|
||||
var isLeltarAktiv = IsLeltarAktiv(felhasznaloSzerepkorok);
|
||||
var isKonyvtarAktiv = IsKonyvtarModulAktiv();
|
||||
var isEJelentkezesAktiv = IsEJelentkezesAktiv(felhasznaloSzerepkorok);
|
||||
|
||||
if (allowedRoles.Any())
|
||||
{
|
||||
if (allowedRoles.Count == 1 && !isDktAktiv && !isEugyAktiv && !isEslAktiv && !isFokuszAktiv && !isLeltarAktiv && !isKonyvtarAktiv && !isEJelentkezesAktiv)
|
||||
{
|
||||
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
|
||||
}
|
||||
|
||||
return View("Index", ModelBuilder(allowedRoles, isDktAktiv, isEugyAktiv, isEslAktiv, isFokuszAktiv, isLeltarAktiv, isKonyvtarAktiv, isEJelentkezesAktiv));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.Count >= 2 && felhasznaloSzerepkorok.Keys.Any(x => Permissions.Contains(x)))
|
||||
{
|
||||
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
|
||||
}
|
||||
|
||||
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.All(x => EUgyinteztesPermissions.Contains(x)))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.All(x => x == SzerepkorTipusEnum.FokuszMonitoring))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.ESL, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.All(x => x == SzerepkorTipusEnum.LeltarConcerned))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Leltar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return View("Index", ModelBuilder(allowedRoles, isDktAktiv, isEugyAktiv, isEslAktiv, isFokuszAktiv, isLeltarAktiv, isKonyvtarAktiv, isEJelentkezesAktiv));
|
||||
}
|
||||
|
||||
public ActionResult ChangeRole(SzerepkorTipusEnum role)
|
||||
{
|
||||
var felhasznaloSzerepkorok = ClaimData.FelhasznaloSzerepkorok;
|
||||
if (felhasznaloSzerepkorok.ContainsKey(role))
|
||||
{
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(new List<SzerepkorTipusEnum> { role }, GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
var isPedagogiaiSzakszolgalat = role == SzerepkorTipusEnum.Adminisztrator && new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMukodesiHelyekForFelhelyValaszto().Any(x => x.FelhelyId.IsEntityId());
|
||||
return Json(new { Url = Url.Content(isPedagogiaiSzakszolgalat ? Constants.General.FelHelyValasztoPage : CommonExtensions.GetDefaultPage()), Success = true });
|
||||
}
|
||||
|
||||
return Json(new { Success = false });
|
||||
}
|
||||
|
||||
public ActionResult Eugyintezes()
|
||||
{
|
||||
if (IsEugyAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult DKTTanar()
|
||||
{
|
||||
if (IsDktAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var intezmenyData = helper.GetIntezmenyiAdatok();
|
||||
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyData.DKTTanarUrl, IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult DKTDiak()
|
||||
{
|
||||
if (IsDktAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var intezmenyData = helper.GetIntezmenyiAdatok();
|
||||
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyData.DKTDiakUrl, IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult ESL()
|
||||
{
|
||||
if (IsESLAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.ESL, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult Fokusz()
|
||||
{
|
||||
if (IsFokuszAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Fokusz, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult Leltar()
|
||||
{
|
||||
if (IsLeltarAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Leltar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult Konyvtar()
|
||||
{
|
||||
if (IsKonyvtarModulAktiv())
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ActionResult EJelentkezes()
|
||||
{
|
||||
if (IsEJelentkezesAktiv(ClaimData.FelhasznaloSzerepkorok))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.eJelentkezes, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private BelepesKezeloModel ModelBuilder(List<KeyValuePair<SzerepkorTipusEnum, string>> allowedRoles, bool isDktAktiv, bool isEugyAktiv, bool isEslAktiv, bool isFokuszAktiv, bool isLeltarAktiv, bool isKonyvtarAktiv, bool isEJelentkezesAktiv)
|
||||
{
|
||||
var model = new BelepesKezeloModel();
|
||||
var shortname = ClaimData.OrganizationShortName;
|
||||
model.OrganizationName = ClaimData.OrganizationCode + " - " + (string.IsNullOrWhiteSpace(shortname) ? ClaimData.OrganizationName : shortname);
|
||||
model.UserName = $"{ClaimData.FelhasznaloNev} {(!string.IsNullOrWhiteSpace(ClaimData.GondviseloNeve) ? "(" + ClaimData.GondviseloNeve + ")" : "")}";
|
||||
model.ProfilImgSrc = ProfileUtils.UserProfileImage;
|
||||
|
||||
foreach (var item in allowedRoles)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = item.Value, Szerepkor = item.Key, Tipus = BelepesKezeloModel.LehetosegTipus.Kreta });
|
||||
}
|
||||
|
||||
if (isDktAktiv)
|
||||
{
|
||||
var naplo = false;
|
||||
var ellenorzo = false;
|
||||
foreach (var role in allowedRoles)
|
||||
{
|
||||
if (role.Key == SzerepkorTipusEnum.Naplo)
|
||||
{
|
||||
naplo = true;
|
||||
}
|
||||
|
||||
if (role.Key == SzerepkorTipusEnum.Ellenorzo)
|
||||
{
|
||||
ellenorzo = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (naplo)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "Digitális Kollaborációs Tér" + (ellenorzo ? " (Tanár)" : ""), Szerepkor = SzerepkorTipusEnum.Naplo, Tipus = BelepesKezeloModel.LehetosegTipus.DKT });
|
||||
}
|
||||
|
||||
if (ellenorzo)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "Digitális Kollaborációs Tér" + (naplo ? " (Diák)" : ""), Szerepkor = SzerepkorTipusEnum.Ellenorzo, Tipus = BelepesKezeloModel.LehetosegTipus.DKT });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (isEugyAktiv)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "e-Ügyintézés", Tipus = BelepesKezeloModel.LehetosegTipus.Eugy });
|
||||
}
|
||||
|
||||
if (isEslAktiv)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "ESL", Tipus = BelepesKezeloModel.LehetosegTipus.ESL });
|
||||
}
|
||||
|
||||
if (isFokuszAktiv)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "Fókusz", Tipus = BelepesKezeloModel.LehetosegTipus.Fokusz });
|
||||
}
|
||||
|
||||
if (isLeltarAktiv)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "KRÉTA Leltár", Tipus = BelepesKezeloModel.LehetosegTipus.Leltar });
|
||||
}
|
||||
|
||||
if (isKonyvtarAktiv)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "Könyvtár modul", Tipus = BelepesKezeloModel.LehetosegTipus.Konyvtar });
|
||||
}
|
||||
|
||||
if (isEJelentkezesAktiv)
|
||||
{
|
||||
model.Lehetosegek.Add(new BelepesKezeloModel.BelepesiLehetoseg { Name = "e-Jelentkezés", Tipus = BelepesKezeloModel.LehetosegTipus.EJelentkezes });
|
||||
}
|
||||
|
||||
model.CancelLinkText = StringResourcesUtil.GetString(2582); /* Kijelentkezés */
|
||||
model.CancelLinkAction = "BelepesKezelo.logout()";
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private bool IsDktAktiv(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
{
|
||||
if (felhasznaloSzerepkorok.Keys.Any(x => DKTPermissions.Contains(x)) && !ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (helper.GetIntezmenyiAdatok().IsDKTAktiv)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsEugyAktiv(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
|
||||
if (helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
return !new GondviseloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsCsokkentettGondviselo(ClaimData.GondviseloId.Value);
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.Any(x => EUgyinteztesPermissions.Contains(x)) || felhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Adminisztrator))
|
||||
{
|
||||
if (ClaimData.IsDefaultAdminUser || ClaimData.BelepesiNev.ToUpper() == Constants.General.KretaTechnicalUserNev.ToUpper())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsESLAktiv(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
{
|
||||
var fHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var felhasznaloiJogosultsagok = fHelper.GetFelhasznaloiJogosultsagok(ClaimData.FelhasznaloId, (int)SzerepkorTipusEnum.Naplo);
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.Any(x => ESLPermissions.Contains(x)) || felhasznaloiJogosultsagok.Contains("Osztalyfonok") || felhasznaloiJogosultsagok.Contains("SzuperOsztalyfonok"))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
|
||||
if (helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.ESL, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
if (felhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Ellenorzo) || ClaimData.IsDefaultAdminUser)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsFokuszAktiv(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
{
|
||||
if (felhasznaloSzerepkorok.Keys.Any(x => FokuszPermissions.Contains(x)))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
|
||||
if (helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Fokusz, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
if (felhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Ellenorzo) || ClaimData.IsDefaultAdminUser || ClaimData.IsPortas)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsLeltarAktiv(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
{
|
||||
if (felhasznaloSzerepkorok.Keys.Any(x => LeltarPermissions.Contains(x)))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
|
||||
if (helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Leltar, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsKonyvtarModulAktiv()
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
|
||||
if (!ClaimData.GondviseloId.HasValue && helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsEJelentkezesAktiv(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
{
|
||||
if (felhasznaloSzerepkorok.Keys.Any(x => eJelentkezesPermissions.Contains(x)))
|
||||
{
|
||||
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
if (helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.eJelentkezes, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
if (felhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Adminisztrator) && !ClaimData.IsDefaultAdminUser)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private List<KeyValuePair<SzerepkorTipusEnum, string>> GetAllowedRoles(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
=> felhasznaloSzerepkorok.Where(x => !Constants.General.NotVisiblePermissions.Contains(x.Key)).ToList();
|
||||
|
||||
private List<SzerepkorTipusEnum> GetEugyintezesESLPermissions(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
=> Permissions.Where(x => felhasznaloSzerepkorok.Keys.Any(y => y == x)).ToList();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.DiakolimpiaKezelo.ClaimValue)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
public class DiakolimpiaController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new DiakolimpiaSearchModel();
|
||||
return View("Index", model);
|
||||
}
|
||||
|
||||
public ActionResult GetFeladhelySorszamPopUp(List<int> tanulok)
|
||||
{
|
||||
PopUpModel pm = new PopUpModel(new DataForMdszModel { Tanulok = tanulok }, "GetFeladhelySorszamPopUp");
|
||||
pm = pm.AddCancelBtn(pm, "KretaWindowHelper.destroyAllWindow");
|
||||
pm = pm.AddBtn(pm, "Kuldes", CommonResource.Kuldes, "DiakolimpiaHelper.sendSelectedData");
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core.Elearning.Nexius;
|
||||
using Kreta.Framework;
|
||||
using Kreta.KretaServer.Caching;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
using Nexius.IdentityProvider.Model.External.V1;
|
||||
using Nexius.IdentityProvider.Model.Lti;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsDefaultAdminUser.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class ELearningController : Controller
|
||||
{
|
||||
readonly INexiusCourseService nexiusCourseService;
|
||||
|
||||
public ELearningController(INexiusCourseService nexiusCourseService)
|
||||
{
|
||||
this.nexiusCourseService = nexiusCourseService;
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
var cache = SDAServer.Instance.CacheManager.AquireCache<ElearningCache>();
|
||||
var model = new List<NexiusListItemModel>();
|
||||
|
||||
var isGondviselo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId != null;
|
||||
var isTanulo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId == null;
|
||||
var courseIdList = new ElearningElerhetosegHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetElearningElerhetosegList(isGondviselo, isTanulo, (int)ClaimData.FelhasznaloSzerepkor, ClaimData.FelhasznaloSzerepCsomagok, ClaimData.GondviseloId);
|
||||
|
||||
var courses = cache.GetCourses(courseIdList, nexiusCourseService);
|
||||
|
||||
var courseResults = nexiusCourseService.GetUserCourseResults(GetFelhasznaloAzonosito());
|
||||
|
||||
CourseResult courseResult;
|
||||
NexiusListItemModel listItem;
|
||||
foreach (var course in courses)
|
||||
{
|
||||
listItem = new NexiusListItemModel() { Course = course.Value };
|
||||
|
||||
courseResult = courseResults.FirstOrDefault(x => x.Activities.CourseObjectId == course.Value.CourseObject.Id);
|
||||
if (courseResult != null)
|
||||
{
|
||||
listItem.CourseResult = courseResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
listItem.CourseResult = new CourseResult();
|
||||
listItem.CourseResult.Activities = new LtiCourseResultModel();
|
||||
listItem.CourseResult.Activities.Progress = 0;
|
||||
listItem.CourseResult.Activities.Measure = 0;
|
||||
listItem.CourseResult.Activities.ResultEndTime = DateTime.MaxValue;
|
||||
listItem.CourseResult.Activities.TotalTime = 0;
|
||||
}
|
||||
|
||||
model.Add(listItem);
|
||||
}
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
private string GetFelhasznaloAzonosito()
|
||||
{
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
return new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviseloEgyediAzonosito(ClaimData.GondviseloId.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.ReCaptcha;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
public class ElfelejtettJelszoController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View(new ElfelejtettJelszoModel());
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult LinkKuldes(ElfelejtettJelszoModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
Response.StatusCode = 400;
|
||||
Response.TrySkipIisCustomErrors = true;
|
||||
|
||||
var modelErrors = ModelState.AllErrors();
|
||||
return Json(modelErrors);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var captcha = ReCaptchaValidator.Validate(model.ReCaptcha);
|
||||
if (!captcha.Success)
|
||||
{
|
||||
return Json(new IsSuccessResponseCo(false, string.Join(",", captcha.ErrorCodes)));
|
||||
}
|
||||
|
||||
new JelszoModositasLinkHelper(ConnectionTypeExtensions.GetOrganizationConnectionType()).JelszoValtoztatoLinkGeneralasEsKuldes(model.BejelentkezesiNev, model.EmailCim);
|
||||
}
|
||||
catch (KretaJelszoModositasException e)
|
||||
{
|
||||
return Json(new IsSuccessResponseCo(false, e.Message));
|
||||
}
|
||||
|
||||
return Json(new IsSuccessResponseCo(true, AdminisztracioResource.SikeresElfelejtettJelszoFeedback));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.Web.Mvc;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
public class EmailKezelesController : Controller
|
||||
{
|
||||
public ActionResult Index(string data)
|
||||
{
|
||||
return View("Index", (object)data);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
public class FelHelyValasztoController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new FelHelyValasztoModel();
|
||||
MukodesiHelyHelper helper = new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var list = helper.GetMukodesiHelyekForFelhelyValaszto();
|
||||
foreach (var item in list)
|
||||
{
|
||||
model.FelhelyList.Add(new SelectListItem
|
||||
{
|
||||
Text = item.MukodesiHelyNev + (string.IsNullOrWhiteSpace(item.FelhelyNev) ? "" : " - " + item.FelhelyNev),
|
||||
Value = string.Format("{0}_{1}", item.MukodesiHelyID.ToString(), item.FelhelyId.ToString())
|
||||
});
|
||||
}
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public ActionResult SetFelHelyToClaim(string mukodesifelhelyId)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(mukodesifelhelyId))
|
||||
{
|
||||
int felhelyId;
|
||||
if (int.TryParse(mukodesifelhelyId.Split('_')[1], out felhelyId) && felhelyId > 0)
|
||||
{
|
||||
ClaimManager.AddClaim(KretaClaimTypes.FelhelySzuro, felhelyId.ToString());
|
||||
}
|
||||
|
||||
return Json(new { Url = Url.Content(CommonExtensions.GetDefaultPage()), Success = true });
|
||||
}
|
||||
|
||||
return Json(new { Success = false });
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Areas.Alkalmazott.Helpers;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.IsFeltarAlkalmazott.ClaimValue)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
public class FeltarAlkalmazottController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var feltarAlkalmazottModel = new FeltarAlkalmazottModel();
|
||||
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new TanarHelper(connectionType);
|
||||
|
||||
var tanarAdatCO = helper.GetTanarAdatok(ClaimData.FelhasznaloId);
|
||||
feltarAlkalmazottModel.AltalanosSzerzodesiFeltetelekLetoltese = new FeltarAlkalmazottHelper(connectionType).FeltarASZFUrl();
|
||||
feltarAlkalmazottModel.IsAlkalmazottMunkakorTipusJogosult = new AlkalmazottMunkaugyiAdatokHelper(connectionType).HasAlkalmazottAlkalmazottMunkaKorTipus();
|
||||
feltarAlkalmazottModel.IsRendelkezikOktatasiAzonosotioval = !string.IsNullOrWhiteSpace(tanarAdatCO.OktatasiAzonosito);
|
||||
|
||||
if (feltarAlkalmazottModel.IsAlkalmazottMunkakorTipusJogosult && feltarAlkalmazottModel.IsRendelkezikOktatasiAzonosotioval)
|
||||
{
|
||||
feltarAlkalmazottModel.AlapadatModel = AlkalmazottViewHelper.ConvertCOToAlapadatModel(tanarAdatCO);
|
||||
}
|
||||
|
||||
return View(feltarAlkalmazottModel);
|
||||
}
|
||||
|
||||
public ActionResult Atjelentkezes()
|
||||
{
|
||||
return Redirect(new EszkozIgenylesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).EszkozUgyintezesUrl());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.IsFeltarGondviselo.ClaimValue)]
|
||||
public class FeltarGondviseloController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var gondviseloHelper = new GondviseloHelper(connectionType);
|
||||
var feltarGondviseloHelper = new FeltarGondviseloHelper(connectionType);
|
||||
var tanuloHelper = new TanuloHelper(connectionType);
|
||||
|
||||
var co = gondviseloHelper.GetGondviselo4TAdatok(ClaimData.GondviseloId.Value);
|
||||
var feltarGondviseloModel = new FeltarGondviseloModel(co)
|
||||
{
|
||||
AltalanosSzerzodesiFeltetelekLetoltese = feltarGondviseloHelper.FeltarASZFGondviseloUrl(),
|
||||
IsTorvenyesKepviselo = !gondviseloHelper.IsCsokkentettGondviselo(ClaimData.GondviseloId.Value) && tanuloHelper.GetTanuloGondviseloById(ClaimData.GondviseloId.Value).IsTorvenyesKepviselo
|
||||
};
|
||||
|
||||
var osztalyId = feltarGondviseloHelper.GetTanuloOsztalyaEszkozigenyles(ClaimData.FelhasznaloId);
|
||||
if (osztalyId.HasValue)
|
||||
{
|
||||
var osztalyCsoportHelper = new OsztalyCsoportHelper(connectionType);
|
||||
var kepzesiForma = osztalyCsoportHelper.GetOsztalyKepzesiFormajaByOsztalyId(osztalyId.Value);
|
||||
var tantervJellegId = new TanuloHelper(connectionType).GetTanuloiAdatok(ClaimData.FelhasznaloId, ClaimData.KovTanevID, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater, osztalyId, (int)OktNevelesiKategoriaEnum.NevelesOktatas).TanterviJellegId;
|
||||
feltarGondviseloModel.IsNappaliRendszeruIskolaiOktatas =
|
||||
(ClaimData.IsSzakkepzoIntezmeny && (tantervJellegId == (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas))
|
||||
|| (!ClaimData.IsSzakkepzoIntezmeny && (kepzesiForma == (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas));
|
||||
}
|
||||
|
||||
if (!ClaimData.FeltarGondviseloEnabled)
|
||||
{
|
||||
feltarGondviseloModel.IsEditable = false;
|
||||
}
|
||||
|
||||
return View(feltarGondviseloModel);
|
||||
}
|
||||
|
||||
public ActionResult Atjelentkezes()
|
||||
{
|
||||
return Redirect(new EszkozIgenylesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).EszkozUgyintezesUrl());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue, KretaClaimPackages.CsokkentettGondviselo.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.IsFeltarTanulo.ClaimValue)]
|
||||
public class FeltarTanuloController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
|
||||
using Kreta.Web.Classes;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.ReCaptcha;
|
||||
using Kreta.Web.Models;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
[MvcCsokkentettGondviseloAccess]
|
||||
public class GondviseloJelszoIgenyloController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View(new GondviseloJelszoIgenyloModel
|
||||
{
|
||||
FormSettings = new List<string>() {
|
||||
CimElerhetosegConstant.CimSectionVisible,
|
||||
CimElerhetosegConstant.EmailSectionVisible,
|
||||
CimElerhetosegConstant.IsNew,
|
||||
CimElerhetosegConstant.AllandoLakcimCimTipus
|
||||
},
|
||||
TanulovalEgyezik = false,
|
||||
IsGondviseloJelszoIgenylo = true,
|
||||
CimTipus = (int)CimTipusEnum.allando_lakcim,
|
||||
ComboBoxApiControllerName = Constants.ApiControllers.GondviseloJelszoIgenyloApi,
|
||||
EmailcimKotelezo = true
|
||||
});
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult GondviseloJelszoIgenyles(GondviseloJelszoIgenyloModel model)
|
||||
{
|
||||
if (!model.AdatvedelmiTajekozatatoCheck)
|
||||
{
|
||||
ModelState.AddModelError("AdatvedelmiTajekozatatoCheck", ErrorResource.AdatvedelmiElfogadasHibaUzenet);
|
||||
}
|
||||
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
Response.StatusCode = 400;
|
||||
Response.TrySkipIisCustomErrors = true;
|
||||
|
||||
var modelErrors = ModelState.AllErrors();
|
||||
return Json(modelErrors);
|
||||
}
|
||||
|
||||
var captcha = ReCaptchaValidator.Validate(model.ReCaptcha);
|
||||
|
||||
if (!captcha.Success)
|
||||
{
|
||||
return Json(new IsSuccessResponseCo(false, string.Join(",", captcha.ErrorCodes)));
|
||||
}
|
||||
|
||||
using (var loginManager = new LoginManager())
|
||||
{
|
||||
var result = loginManager.GondviseloJelszoIgenyles(model.ConvertToCo());
|
||||
return Json(result);
|
||||
}
|
||||
}
|
||||
|
||||
public string PdfLetoltes(GondviseloJelszoIgenyloModel model)
|
||||
{
|
||||
return NyomtatvanyokLogic.GetFileLetoltesUrlGondviseo(model.ConvertToCo(), CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,489 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.ApiControllers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.TabStrip;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class HelyettesitesekKezeleseController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new HelyettesitesekKezeleseModel();
|
||||
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
model.HetirendJson = helper.GetHetirendek();
|
||||
model.NaptariHetekHetirendJson = helper.GetNaptariHetekHetirendek();
|
||||
|
||||
var calendarMinMaxCo = helper.GetCalendarMinMax();
|
||||
model.CalendarMinTime = calendarMinMaxCo.CalendarMin;
|
||||
model.CalendarMaxTime = calendarMinMaxCo.CalendarMax;
|
||||
|
||||
model.CsengetesiRendMinTime = new TimeSpan();
|
||||
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
|
||||
|
||||
model.TanarId = 0; //Ne jelenjen meg semmi sem a calendarban
|
||||
model.TabList = GetHelyettesitesekKezeleseTabs();
|
||||
|
||||
return View("Index", model);
|
||||
}
|
||||
|
||||
public List<TabStripItemModel> GetHelyettesitesekKezeleseTabs(CalendarModel calendarModel = null)
|
||||
{
|
||||
var list = new List<TabStripItemModel>
|
||||
{
|
||||
new TabStripItemModel
|
||||
{
|
||||
ItemId = "0",
|
||||
ItemName = StringResourcesUtil.GetString(4260) /*Tanórai helyettesítések*/,
|
||||
Area = "Adminisztracio",
|
||||
Controller = "HelyettesitesekKezelese",
|
||||
Action = "GetTanoraiHelyettesitesek",
|
||||
RouteParameters = new Dictionary<string, string>
|
||||
{
|
||||
{"index", "0"}
|
||||
}
|
||||
},
|
||||
new TabStripItemModel
|
||||
{
|
||||
ItemId = "1",
|
||||
ItemName = StringResourcesUtil.GetString(4261) /*Napirend helyettesítések*/,
|
||||
Area = "Adminisztracio",
|
||||
Controller = "HelyettesitesekKezelese",
|
||||
Action = "GetTanoranKivuliHelyettesitesek",
|
||||
RouteParameters = new Dictionary<string, string>
|
||||
{
|
||||
{"index", "1"}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public ActionResult GetTanoraiHelyettesitesek(int index = 0)
|
||||
{
|
||||
var model = new HelyettesitesekKezeleseOrarendModel
|
||||
{
|
||||
Index = index
|
||||
};
|
||||
return View("TanoraiHelyettesitesek_Tab", model);
|
||||
}
|
||||
|
||||
public ActionResult GetTanoranKivuliHelyettesitesek(int index = 1)
|
||||
{
|
||||
var model = new HelyettesitesekKezeleseOrarendModel
|
||||
{
|
||||
Index = index
|
||||
};
|
||||
return View("TanoranKivuliHelyettesitesek_Tab", model);
|
||||
}
|
||||
|
||||
public ActionResult OpenHelyettesitesPopUp(CalendarModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var felhasznalokOnlyAlkalmazottSzerepkorIds = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetFelhasznaloIdsOnlyAlkalmazottSzerepkor();
|
||||
|
||||
PopUpModel popUpModel;
|
||||
if (model.OraType == CalendarOraTypeEnum.TanitasiOra || model.OraType == CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
|
||||
{
|
||||
var nemMegtartottHelyettesitesBevitelModel = new NemMegtartottHelyettesitesBevitelModel
|
||||
{
|
||||
HelyettesitesBevitelCalendarEventId = model.EventId,
|
||||
HelyettesitesBevitelOraKezdeteDate = model.Start,
|
||||
HelyettesitesBevitelOraVegeDate = model.End
|
||||
};
|
||||
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var tanoraCo = helper.GetTanorakAdatok(model.EventId);
|
||||
if (!tanoraCo.AdminAltalKiirt)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
popUpModel = new PopUpModel(nemMegtartottHelyettesitesBevitelModel, "ElmaradtOra_Info");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelCancel", CommonResource.Megse, "HelyettesitesBevitelHelper.ElmaradtOraCancel");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelNemMegtartottHelyettesites", CommonResource.Torles, "HelyettesitesBevitelHelper.NemMegtartottOraTorlese");
|
||||
ModelState.Clear();
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
|
||||
//NOTE: Ahhoz, hogy az oldal gyorsan töltődjön be, egyszer szedjük le a szűrési feltételhez kapcsolatos co-kat és azokon végezzük el a szűréseket mind a 10 listához!
|
||||
var orarendiOra = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiOraById(model.EventId);
|
||||
var oraDatum = model.Start.Date;
|
||||
|
||||
var startDate = new DateTime(model.Start.Date.Year, model.Start.Date.Month, model.Start.Date.Day, orarendiOra.OraKezdete.Hour, orarendiOra.OraKezdete.Minute, orarendiOra.OraKezdete.Second);
|
||||
var endDate = new DateTime(model.Start.Date.Year, model.Start.Date.Month, model.Start.Date.Day, orarendiOra.OraVege.Hour, orarendiOra.OraVege.Minute, orarendiOra.OraVege.Second);
|
||||
|
||||
var nemkotottMunkaido = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNemKotottMunkaIdoHelyettesiteshez(startDate, endDate);
|
||||
|
||||
|
||||
//NOTE: 00. - MINDEN SZŰRÉSRE ÉRVÉNYES
|
||||
// A helyettesítés napján jogviszonnyal rendelkező alkalmazottak
|
||||
// A helyettesítés napján nem tartósan távol levő alkalmazottak
|
||||
// A helyettesítés napján nem betöltetlen álláshelyű alkalmazottak
|
||||
// A tanár nem helyettesítheti a saját óráját
|
||||
var alkalmazottCoList = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottCoList()
|
||||
.Where(x => (!x.AlkalmazasKezdeteDate.HasValue || x.AlkalmazasKezdeteDate <= oraDatum) &&
|
||||
(!x.AlkalmazasMegszuneseDate.HasValue || oraDatum <= x.AlkalmazasMegszuneseDate) &&
|
||||
!x.IsTartosanTavolLevo &&
|
||||
!x.IsBetoltetlenAllashely &&
|
||||
x.Id != orarendiOra.TanarId).OrderBy(x => x.FelhasznaloNyomtatasiNev).ToList();
|
||||
var tanarCoList = alkalmazottCoList.Where(z => !felhasznalokOnlyAlkalmazottSzerepkorIds.Contains(z.Id)).ToList();
|
||||
|
||||
//NOTE: Előszedjük a vizsgálatokhoz, minden erre az időpontra(napirendnél nem vesszük figyelembe az óra sorszámát, mert nincs) felvett órarendi órát és tanítási órat a hozzájuk tartozó helyettesítésekkel a sp_GetOrarend tárolteljárást használva!
|
||||
// Ha órarendi óra, akkor meg kell vizsgálnunk, hogy...
|
||||
// ...nem egyezik-e meg a kiválasztott órával.
|
||||
// ...beleesik-e az érvényességi időbe a kiválasztott óra.
|
||||
// Ha tanítási óra, akkor meg kell vizsgálnunk, hogy...
|
||||
// ...meg lett-e tarva.
|
||||
var orarendiEsTanitasiOraList = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiEsTanitasiOrakByDays(model.Start, model.End, OrarendTipusEnum.Minden)
|
||||
.Where(x => ((x.OraTipus == nameof(CalendarOraTypeEnum.OrarendiOra) &&
|
||||
x.Id != orarendiOra.ID &&
|
||||
x.OraErvenyessegKezdete <= oraDatum && (!x.OraErvenyessegVege.HasValue || oraDatum <= x.OraErvenyessegVege)) ||
|
||||
(x.OraTipus == nameof(CalendarOraTypeEnum.TanitasiOra) &&
|
||||
x.IsMegtartott)) &&
|
||||
x.OraKezdete.HasValue && x.OraVege.HasValue &&
|
||||
((x.OraKezdete.Value <= model.Start && x.OraVege.Value > model.Start)
|
||||
|| (x.OraKezdete.Value > model.Start && x.OraKezdete.Value < model.End)
|
||||
|| (x.OraVege.Value >= model.End && x.OraKezdete.Value < model.End))).ToList();
|
||||
|
||||
//NOTE: Előszedjük a vizsgálatokhoz, a tantárgyfelosztásokat!
|
||||
var tantargyfelosztasCoList = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTantargyfelosztasCoList();
|
||||
|
||||
//NOTE: Előszedjük a vizsgálatokhoz, az osztályokat és csoportokat!
|
||||
var osztalyCoList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCoList();
|
||||
var csoportCoList = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportCoList();
|
||||
|
||||
var osztalyCsoportId = orarendiOra.OsztalyCsoportId.Value;
|
||||
var isOsztaly = osztalyCoList.Any(x => x.Id == osztalyCsoportId);
|
||||
var osztalyIdList = new List<int>();
|
||||
List<int> csoportIdList;
|
||||
if (isOsztaly)
|
||||
{
|
||||
//NOTE: Ha osztály előszedjük az osztály id-t és a hozzá tartozó bontott csoportok id-ját!
|
||||
osztalyIdList = osztalyCoList.Where(x => x.Id == osztalyCsoportId).Select(x => x.Id).ToList();
|
||||
csoportIdList = csoportCoList.Where(x => x.OsztalyBontasId == osztalyCsoportId || x.Id == osztalyCsoportId).Select(x => x.Id).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: Ha csoport...
|
||||
var osztalyBontasId = csoportCoList.Single(x => x.Id == osztalyCsoportId).OsztalyBontasId;
|
||||
if (osztalyBontasId.IsEntityId())
|
||||
{
|
||||
//NOTE: ...és van osztálybontása, akkor előszedjük a hozzá tartozó osztály id-t és az ahhoz tartozó bontott csoportok id-ját!
|
||||
osztalyIdList = osztalyCoList.Where(x => x.Id == osztalyBontasId).Select(x => x.Id).ToList();
|
||||
csoportIdList = csoportCoList.Where(x => x.OsztalyBontasId.IsEntityId() && osztalyIdList.Contains(x.OsztalyBontasId.Value)).Select(x => x.Id).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: ...és nincs osztálybontása, akkor csak simán előszedjük a csoport id-t!
|
||||
csoportIdList = csoportCoList.Where(x => x.Id == osztalyCsoportId).Select(x => x.Id).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Össze union-ozzuk, az osztályok és csoportok id-ját, a szűrésekhez!
|
||||
var osztalyCsoportIdList = osztalyIdList.Union(csoportIdList).ToList();
|
||||
|
||||
var helyettesitesBevitelModel = new HelyettesitesBevitelModel
|
||||
{
|
||||
HelyettesitesBevitelCalendarEventId = model.EventId,
|
||||
HelyettesitesBevitelHelyettesitesId = model.HelyettesitesId,
|
||||
HelyettesitesBevitelCalendarOraType = model.OraType,
|
||||
HelyettesitesBevitelOraKezdeteDate = model.Start,
|
||||
HelyettesitesBevitelOraVegeDate = model.End,
|
||||
HelyettesitesBevitelHelyettesitesGyakorisagTipus = (int)HelyettesitesGyakorisagTipusEnum.Egyedi,
|
||||
HelyettesitesBevitelTartosHelyettesitesVegeDate = DateTime.Today,
|
||||
HelyettesitesBevitelHelyettesitesTipusId = (int)HelyettesitesTipusEnum.szakszeru_helyettesites,
|
||||
|
||||
HelyettesitesOsztalybanSzakosTanarList = GetHelyettesitesOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
HelyettesitesNemOsztalybanSzakosTanarList = GetHelyettesitesNemOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
HelyettesitesOsztalybanNemSzakosTanarList = GetHelyettesitesOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
HelyettesitesNemOsztalybanNemSzakosTanarList = GetHelyettesitesNemOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasOsztalybanSzakosTanarList = GetOsszevonasOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasNemOsztalybanSzakosTanarList = GetOsszevonasNemOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasOsztalybanNemSzakosTanarList = GetOsszevonasOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasNemOsztalybanNemSzakosTanarList = GetOsszevonasNemOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
FelugyeletTanarList = GetFelugyeletTanarList(alkalmazottCoList),
|
||||
OsszesTanarList = GetOsszesTanarList(alkalmazottCoList),
|
||||
IsTulora = orarendiOra.Tulora,
|
||||
HelyettesitesTitle = $"{OrarendResource.HelyettesitesFelviteleEsModositasa} - {orarendiOra.TanarAlkalmazottNev ?? orarendiOra.TanarNev} - {orarendiOra.TantargyNev} - {orarendiOra.OsztalyCsoportNev}"
|
||||
};
|
||||
|
||||
if (model.HelyettesitesId.IsEntityId())
|
||||
{
|
||||
var api = new HelyettesitesekKezeleseApiController();
|
||||
var data = api.GetHelyettesitesBevitelData(model.HelyettesitesId.Value);
|
||||
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelHelyettesitesId = data.HelyettesitesBevitelHelyettesitesId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelGroupId = data.HelyettesitesBevitelGroupId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelTanarId = data.HelyettesitesBevitelTanarId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelTanarNev = data.HelyettesitesBevitelTanarNev;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelHelyettesitesTipusId = data.HelyettesitesBevitelHelyettesitesTipusId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelHelyettesitesOka = data.HelyettesitesBevitelHelyettesitesOka;
|
||||
}
|
||||
|
||||
popUpModel = new PopUpModel(helyettesitesBevitelModel, "Helyettesites_Bevitel");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelCancel", CommonResource.Megse, "HelyettesitesBevitelHelper.HelyettesitesCancel");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelSave", CommonResource.Mentes, "HelyettesitesBevitelHelper.HelyettesitesSave");
|
||||
popUpModel = model.HelyettesitesId.IsEntityId() ? popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelDelete", CommonResource.Torles, "HelyettesitesBevitelHelper.HelyettesitesDelete") : popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelNemMegtartottHelyettesites", OrarendResource.ElmaradtOra, "HelyettesitesBevitelHelper.SaveNemMegtartottHelyettesites");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "OpenOracserePopUp", CommonResource.Oracsere, "HelyettesitesBevitelHelper.OpenOracserePopUp");
|
||||
|
||||
ModelState.Clear();
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: 01. - HELYETTESÍTÉS - Osztályban tanító, szakos helyettesítő
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 02. - HELYETTESÍTÉS - Osztályban nem tanító, szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesNemOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 03. - HELYETTESÍTÉS - Osztályban tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 04. - HELYETTESÍTÉS - Osztályban nem tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesNemOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id)
|
||||
&& tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 05. - ÖSSZEVONÁS - Osztályban tanító, szakos helyettesítő
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetOsszevonasOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 06. - ÖSSZEVONÁS - Osztályban nem tanító, szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetOsszevonasNemOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 07. - ÖSSZEVONÁS - Osztályban tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetOsszevonasOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 08. - ÖSSZEVONÁS - Osztályban nem tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
|
||||
private List<SelectListItem> GetOsszevonasNemOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 09. - FELÜGYELET - Egyéb alkalmazott (nem pedagógus)
|
||||
// Nincs beállítva pedagógus fokozata (ahol ’Na’ a beállított érték)
|
||||
// NINCS SZŰRÉS LYUKAS ÓRÁKRA
|
||||
// NINCS SZŰRÉS OSZTÁLYCSOPORTHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
// NINCS SZŰRÉS TANTÁRGYHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
private List<SelectListItem> GetFelugyeletTanarList(List<AlkalmazottItemCo> tanarCoList)
|
||||
{
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCoList
|
||||
.Where(tanar => !tanar.BesorolasiFokozatTipusId.IsEntityId() || tanar.BesorolasiFokozatTipusId.Value == (int)BesorolasiFokozatTipusEnum.na));
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 10. - ÖSSZES PEDAGÓGUS
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// NINCS SZŰRÉS LYUKAS ÓRÁKRA
|
||||
// NINCS SZŰRÉS OSZTÁLYCSOPORTHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
// NINCS SZŰRÉS TANTÁRGYHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
private List<SelectListItem> GetOsszesTanarList(List<AlkalmazottItemCo> tanarCoList)
|
||||
{
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCoList
|
||||
.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na));
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
private IDictionary<string, string> CreateAlkalmazottDictionary(IEnumerable<AlkalmazottItemCo> tanarCoList)
|
||||
{
|
||||
return tanarCoList.ToDictionary(x => x.Id.ToString(), x => $"{x.FelhasznaloNyomtatasiNev}{(string.IsNullOrWhiteSpace(x.FelhasznaloOktatasiAzonosito) ? Core.Constants.General.HianyzoOktatasiAzonositoJeloles : $" ({x.FelhasznaloOktatasiAzonosito})")}");
|
||||
}
|
||||
|
||||
public ActionResult OpenOracserePopUp(int helyettesitesreKivalasztottTanarId)
|
||||
{
|
||||
var oracsereModel = new OracsereModel();
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
oracsereModel.HelyettesitesreKivalasztottTanarNeve = helper.GetNyomtatasiNev(helyettesitesreKivalasztottTanarId);
|
||||
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var tanev = tanevHelper.GetTanevInfo();
|
||||
oracsereModel.TanevElsoNapja = tanev.KezdoNap;
|
||||
oracsereModel.TanevUtolsoNapja = tanev.UtolsoNap;
|
||||
|
||||
var popUpModel = new PopUpModel(oracsereModel, "Oracsere_PopUp");
|
||||
popUpModel.AddCancelBtn(popUpModel, "HelyettesitesBevitelHelper.OracsereCancel");
|
||||
popUpModel.AddBtn(popUpModel, "OracsereSaveButton", CommonResource.Mentes, "HelyettesitesBevitelHelper.SaveOracsere");
|
||||
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class HelyettesitesekListajaController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new HelyettesitesekListajaSearchModel() { FeladatEllatasiHelyId = ClaimData.FelhelySzuro };
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public ActionResult OpenHelyettesitesInfoPopUp(string id, bool naplozott)
|
||||
{
|
||||
try
|
||||
{
|
||||
HelyettesitesInfoModel helyettesitesInfoModel;
|
||||
if (!int.TryParse(id, out int searchId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran);
|
||||
}
|
||||
|
||||
if (naplozott)
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
TanoraCO tanoraCo = helper.GetTanorakAdatok(searchId);
|
||||
helyettesitesInfoModel = new HelyettesitesInfoModel
|
||||
{
|
||||
Datum = tanoraCo.Datum.ToShortDateString(),
|
||||
Oraszam = tanoraCo.Oraszam,
|
||||
HetNapja = tanoraCo.HetNapjaNev,
|
||||
Hetirend = tanoraCo.HetirendNev,
|
||||
Foglalkozas = tanoraCo.FoglalkozasNev,
|
||||
OsztalyCsoport = tanoraCo.OsztalyCsoportNev,
|
||||
Tantargy = tanoraCo.TantargyNev,
|
||||
Tanar = tanoraCo.TanarNev,
|
||||
Terem = tanoraCo.TeremNev,
|
||||
Megtartott = tanoraCo.Megtartott.HasValue && tanoraCo.Megtartott.Value ? CommonResource.Igen : CommonResource.Nem,
|
||||
Sorszamozando = tanoraCo.Sorszamozando.GetDisplayName(),
|
||||
OraKezdete = tanoraCo.OraKezd.ToString("HH:mm"),
|
||||
OraVege = tanoraCo.OraVeg.ToString("HH:mm"),
|
||||
Tema = tanoraCo.Tema,
|
||||
HaziFeladat = tanoraCo.HaziFeladat,
|
||||
HelyettesitesOka = tanoraCo.HelyettesitesOka,
|
||||
HelyettesitesTipusa = tanoraCo.HelyettesitesTipus.GetDisplayName<HelyettesitesTipusEnum>(ClaimData.SelectedTanevID.Value),
|
||||
HelyettesitesElrendelesenekIdopontja = tanoraCo.HelyettesitesElrendelesenekIdopontja?.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
|
||||
LegutobbiModositasIdopontja = tanoraCo.LegutobbiModositasIdopontja.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
|
||||
NaplozasIdopontja = tanoraCo.BejegyIdo.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds)
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
TanoraCO tanoraCo = helper.GetHelyettesitesAdatok(searchId);
|
||||
helyettesitesInfoModel = new HelyettesitesInfoModel
|
||||
{
|
||||
Datum = tanoraCo.Datum.ToShortDateString(),
|
||||
Oraszam = tanoraCo.Oraszam,
|
||||
HetNapja = tanoraCo.HetNapjaNev,
|
||||
Hetirend = tanoraCo.HetirendNev,
|
||||
Foglalkozas = tanoraCo.FoglalkozasNev,
|
||||
OsztalyCsoport = tanoraCo.OsztalyCsoportNev,
|
||||
Tantargy = tanoraCo.TantargyNev,
|
||||
Tanar = tanoraCo.HelyettesitoTanarNev,
|
||||
Terem = tanoraCo.TeremNev,
|
||||
Megtartott = tanoraCo.Megtartott.HasValue && tanoraCo.Megtartott.Value ? CommonResource.Igen : CommonResource.Nem,
|
||||
Sorszamozando = tanoraCo.Sorszamozando.GetDisplayName(),
|
||||
OraKezdete = tanoraCo.OraKezd.ToString("HH:mm"),
|
||||
OraVege = tanoraCo.OraVeg.ToString("HH:mm"),
|
||||
Tema = tanoraCo.Tema,
|
||||
HelyettesitesOka = tanoraCo.Megjegyzes,
|
||||
HelyettesitesTipusa = tanoraCo.HelyettesitesTipus.GetDisplayName<HelyettesitesTipusEnum>(ClaimData.SelectedTanevID.Value),
|
||||
HelyettesitesElrendelesenekIdopontja = tanoraCo.HelyettesitesElrendelesenekIdopontja?.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
|
||||
};
|
||||
}
|
||||
|
||||
var popUpModel = new PopUpModel(helyettesitesInfoModel, "Info_PopUp");
|
||||
popUpModel.AddCancelBtn(popUpModel, "HelyettesitesekListajaHelper.helyettesitesInfoCancel");
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.ReCaptcha;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
public class JelszoValtoztatoController : Controller
|
||||
{
|
||||
public ActionResult Index(string guid)
|
||||
{
|
||||
var model = new JelszoValtoztatoModel { Guid = guid };
|
||||
|
||||
try
|
||||
{
|
||||
model.IsSzulDatumValidacio = new JelszoLinkHelper(ConnectionTypeExtensions.GetOrganizationConnectionType(), guid).IsSzulDatumValidacio();
|
||||
}
|
||||
catch (KretaJelszoModositasException e)
|
||||
{
|
||||
model.ErrorMessage = e.Message;
|
||||
}
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public JsonResult SaveJelszo(JelszoValtoztatoModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
Response.StatusCode = 400;
|
||||
Response.TrySkipIisCustomErrors = true;
|
||||
|
||||
var modelErrors = ModelState.AllErrors();
|
||||
return Json(modelErrors);
|
||||
}
|
||||
|
||||
var captcha = ReCaptchaValidator.Validate(model.ReCaptcha);
|
||||
|
||||
if (!captcha.Success)
|
||||
{
|
||||
return Json(new IsSuccessResponseCo(false, string.Join(",", captcha.ErrorCodes)));
|
||||
}
|
||||
|
||||
IsSuccessResponseCo response = new JelszoLinkHelper(ConnectionTypeExtensions.GetOrganizationConnectionType(), model.Guid).SaveJelszo(model.ConvertToCo());
|
||||
|
||||
return Json(response);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,234 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
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.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
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 KIRTanuloImportController : Controller
|
||||
{
|
||||
private IFeatureContext FeatureContext { get; }
|
||||
|
||||
private IUploadFileValidator UploadFileValidator { get; }
|
||||
|
||||
public KIRTanuloImportController(IFeatureContext featureContext, IUploadFileValidator uploadFileValidator)
|
||||
{
|
||||
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
|
||||
UploadFileValidator = uploadFileValidator ?? throw new ArgumentNullException(nameof(uploadFileValidator));
|
||||
}
|
||||
|
||||
// GET: Adminisztracio/KIRTanuloImport
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new TanuloKIRImportModel
|
||||
{
|
||||
KirLoginModel = new KIRLoginModel()
|
||||
{
|
||||
OmAzonosito = ClaimData.OrganizationCode,
|
||||
},
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
KIRImportEnabled = FeatureContext.IsEnabled(Core.Constants.FeatureName.KIRImport),
|
||||
MaxAllowedFileSizeInBytes = UploadFileValidator.Configuration.ImportMaxAllowedFileSizeInBytes,
|
||||
AllowedFileExtensions = UploadFileValidator.Configuration.ImportAllowedFileExtensions,
|
||||
IsSzakkepzoIntezmeny = ClaimData.IsSzakkepzoIntezmeny,
|
||||
};
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public ActionResult OpenKIRTanuloImportPopup(TanuloKIRImportModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var kirHelper = new KirHelper(ConnectionTypeExtensions.GetSessionConnectionType(), model.KirLoginModel.OmAzonosito, model.KirLoginModel.FelhasznaloNev, jelszo: model.KirLoginModel.Jelszo);
|
||||
var tanarestanuloKirImportModel = new TanuloKIRImportModel
|
||||
{
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
KIRImportModel = new KIRImportModel
|
||||
{
|
||||
OmAzonosito = model.KirLoginModel.OmAzonosito,
|
||||
FelhasznaloNev = model.KirLoginModel.FelhasznaloNev,
|
||||
KirToken = kirHelper.KirToken,
|
||||
TelephelyList = kirHelper.GetTelephelyList().ToSelectListItemList()
|
||||
},
|
||||
KirLoginModel = new KIRLoginModel
|
||||
{
|
||||
OmAzonosito = model.KirLoginModel.OmAzonosito,
|
||||
FelhasznaloNev = model.KirLoginModel.FelhasznaloNev
|
||||
},
|
||||
};
|
||||
|
||||
var pm = new PopUpModel(tanarestanuloKirImportModel, "KIRTanuloImportModal");
|
||||
pm.AddCancelBtn(pm, "KretaWindowHelper.destroyAllWindow");
|
||||
pm.AddBtn(pm, "BtnKIRImport", 3486 /*Importálás*/, "KIRTanuloImportHelper.KIRImport");
|
||||
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
StatusError error = new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
public ActionResult KIRImport(TanuloKIRImportModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var kirHelper = new KirHelper(ConnectionTypeExtensions.GetSessionConnectionType(), model.KIRImportModel.OmAzonosito, model.KIRImportModel.FelhasznaloNev, kirToken: model.KIRImportModel.KirToken);
|
||||
|
||||
var tanuloList = kirHelper.GetTanuloList(model.KIRImportModel.TelephelyKod.Value);
|
||||
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
|
||||
var anotherYearId = Kreta.Web.Classes.Utils.GetAnotherYearId();
|
||||
new EgysegesImportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).ExecuteKIRTanuloImport(tanuloList, anotherYearId, ClaimData.IsKovTanev);
|
||||
}
|
||||
|
||||
return new HttpStatusCodeResult(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
public ActionResult OpenTanuloImportPopUp(bool? isJuttatasUpdate)
|
||||
{
|
||||
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var tanulokFelolteseModel = new TanulokFeltolteseModel
|
||||
{
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
Errors = helper.TanuloKIRAdatok.Validate(),
|
||||
IsJuttatasUpdate = isJuttatasUpdate,
|
||||
IsSzakkepzoIntezmeny = ClaimData.IsSzakkepzoIntezmeny,
|
||||
};
|
||||
|
||||
var model = new PopUpModel(tanulokFelolteseModel, "TanulokFeltolteseModal");
|
||||
model.AddCancelBtn(model, "KretaWindowHelper.destroyAllWindow");
|
||||
|
||||
if (tanulokFelolteseModel.Errors.Count == 0)
|
||||
{
|
||||
model.AddOkBtn(model, "KIRTanuloFeltoltesHelper.Save");
|
||||
}
|
||||
|
||||
return PartialView(Constants.General.PopupView, model);
|
||||
}
|
||||
|
||||
public ActionResult UploadKIRTanuloFile(HttpPostedFileBase importTanuloFile)
|
||||
{
|
||||
UploadFileValidator.ValidateImportFile(importTanuloFile);
|
||||
|
||||
try
|
||||
{
|
||||
TantervHelper helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
DataSet tantervDataSet = helper.TantervKereses();
|
||||
if (!tantervDataSet.Tables[0].Rows.Count.IsNotNullAndPositive())
|
||||
{
|
||||
throw new BlException(ImportExportOrarendResource.TantervNotFound);
|
||||
}
|
||||
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
|
||||
var anotherYearId = Kreta.Web.Classes.Utils.GetAnotherYearId();
|
||||
new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ExecuteKIRTanuloImportFile(importTanuloFile.ContentLength, importTanuloFile.InputStream, importTanuloFile.FileName, anotherYearId, ClaimData.IsKovTanev, ClaimData.IsSzakkepzoIntezmeny);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
catch (InvalidDataException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
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 SaveTanulok(bool? isJuttatasUpdate)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
helper.SaveImportaltTanulok(isJuttatasUpdate ?? false);
|
||||
|
||||
return Json(new { tovabbUrl = @"/Tanulo/Tanulo" });
|
||||
}
|
||||
catch (BlException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (SDA.DataProvider.UniqueKeyViolationException)
|
||||
{
|
||||
/*A fájlban szereplő oktatási azonosítóval már szerepel diák az adatbázisban*/
|
||||
StatusError error = new StatusError(HttpStatusCode.BadRequest, StringResourcesUtils.GetString(4852));
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
public ActionResult GetPreLoadedStudents(DataSourceRequest request)
|
||||
{
|
||||
var helper = new EgysegesImportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
return Json(helper.GetImportaltTanulok().ToDataSourceResult(), JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
public ActionResult DownloadTemplate()
|
||||
{
|
||||
string filePath = Kreta.Web.Classes.Utils.GetExcelTemplateFilePath(Constants.ImportExport.TanuloImportSablonNev);
|
||||
|
||||
if (filePath == null)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.FajlNemLetezik);
|
||||
}
|
||||
|
||||
return File(filePath, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.TanuloImportSablonNev);
|
||||
}
|
||||
|
||||
public ActionResult ExportAktualisAdatok()
|
||||
{
|
||||
var memoryStream = new EgysegesImportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ExportTanuloAktualisAdatok();
|
||||
return new FileStreamResult(memoryStream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = $"{TanuloResource.TanulokExport}.{Constants.ImportExport.FileFormatXlsx}" };
|
||||
}
|
||||
}
|
||||
}
|
287
KretaWeb/Areas/Adminisztracio/Controllers/LoginController.cs
Normal file
287
KretaWeb/Areas/Adminisztracio/Controllers/LoginController.cs
Normal file
|
@ -0,0 +1,287 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.FeatureToggle;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Security;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Classes;
|
||||
using Kreta.Web.Configuration;
|
||||
using Kreta.Web.Controllers.Logic;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.ReCaptcha;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[AllowAnonymous]
|
||||
public class LoginController : Controller
|
||||
{
|
||||
private IIdpConfiguration IdpConfiguration { get; }
|
||||
private IFeatureContext FeatureContext { get; }
|
||||
|
||||
public LoginController(IIdpConfiguration idpConfiguration, IFeatureContext featureContext)
|
||||
{
|
||||
IdpConfiguration = idpConfiguration ?? throw new ArgumentNullException(nameof(idpConfiguration));
|
||||
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
if (IdpConfiguration.LoginEnabled)
|
||||
{
|
||||
return RedirectToAction("Index", "Home", new { Area = string.Empty });
|
||||
}
|
||||
|
||||
var model = BuildModel();
|
||||
|
||||
var mainVersion = KretaVersion.Instance.MainVersion;
|
||||
var assemblyCreationDate = KretaVersion.Instance.AssemblyCreationDateTime.ToShortDateString();
|
||||
var commitNumber = KretaVersion.Instance.CommitNumber;
|
||||
var nextUpdateDateTimeText = new AdminHelper(ConnectionTypeExtensions.GetOrganizationConnectionType()).GetKovTelepitesDatum().ToString("yyyy.MM.dd. HH:mm");
|
||||
|
||||
ViewBag.Version = $"{CommonResource.Version}: {mainVersion} ({assemblyCreationDate}) <br/> {commitNumber}";
|
||||
ViewBag.NextUpdateDateTimeText = nextUpdateDateTimeText;
|
||||
LogOut();
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
public ActionResult LostPasswordPopUp()
|
||||
{
|
||||
var popUpModel = new PopUpModel(new LostPasswordModel(), "LostPasswordPopUp");
|
||||
popUpModel = popUpModel.AddCancelBtn(popUpModel, "KretaWindowHelper.destroyAllWindow");
|
||||
popUpModel = popUpModel.AddOkBtn(popUpModel, "LoginHelper.requestNewPassword");
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
|
||||
public ActionResult PasswordReset(LostPasswordModel model)
|
||||
{
|
||||
var result = Content(ErrorResource.AzUjJelszotElkuldtukAMegadottEmailCimre);
|
||||
return result;
|
||||
}
|
||||
|
||||
private const string ErrorCodeAccountError = "AccountError";
|
||||
|
||||
public ActionResult LoginCheck(LoginModel model)
|
||||
{
|
||||
if (IdpConfiguration.LoginEnabled)
|
||||
{
|
||||
return HttpNotFound();
|
||||
}
|
||||
|
||||
LogOut();
|
||||
|
||||
LoginInfo loginInfo = null;
|
||||
bool isAccountOk;
|
||||
|
||||
if (!new IntezmenyHelper(ConnectionTypeExtensions.GetOrganizationConnectionType()).IsSuccessAuthorizedDate())
|
||||
{
|
||||
return LoginResult(success: false, AdminisztracioResource.TelepitesMiattBelepesNemLehetseges, ErrorCodeAccountError, string.Empty);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.UserName))
|
||||
{
|
||||
return LoginResult(success: false, ErrorResource.AFelhasznalonevMegadasaKotelezo, ErrorCodeAccountError, string.Empty);
|
||||
}
|
||||
|
||||
//recaptcha validation
|
||||
if (model.ReCaptchaIsEnabled)
|
||||
{
|
||||
var captcha = ReCaptchaValidator.Validate(model.ReCaptcha);
|
||||
if (!captcha.Success)
|
||||
{
|
||||
return LoginResult(success: false, ErrorResource.ABelepeshezACaptchaKozetelezo, ErrorCodeAccountError, string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Account lekérdezése
|
||||
try
|
||||
{
|
||||
using (var loginManager = new LoginManager())
|
||||
{
|
||||
loginInfo = loginManager.CheckLogin(model.UserName.Trim(), model.Password, GetClientIP());
|
||||
isAccountOk = loginInfo != null;
|
||||
if (isAccountOk && !loginInfo.IsDeniedArchivIntezmenyUser)
|
||||
{
|
||||
throw new ArchivBelepesException("-");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SecurityException)
|
||||
{
|
||||
isAccountOk = false;
|
||||
}
|
||||
catch (DataIntegrityException)
|
||||
{
|
||||
isAccountOk = false;
|
||||
}
|
||||
catch (NextTanevBelepesException)
|
||||
{
|
||||
return LoginResult(success: false, ErrorResource.KovTanevBelepesError, ErrorCodeAccountError, string.Empty);
|
||||
}
|
||||
catch (ArchivBelepesException)
|
||||
{
|
||||
return LoginResult(success: false, ErrorResource.ArchivBelepesError, ErrorCodeAccountError, string.Empty);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
SDAServer.Instance.Logger.ExceptionThrown(ex);
|
||||
return LoginResult(success: false, ErrorResource.IsmeretlenHibaTortent, ErrorCodeAccountError, string.Empty);
|
||||
}
|
||||
|
||||
//NOTE: Ha nem jók a bejelentkezési adatok
|
||||
if (!isAccountOk || loginInfo.PasswordState == PasswordState.INVALID)
|
||||
{
|
||||
return LoginResult(success: false, ErrorResource.HibasFelhasznalonevVagyJelszo, ErrorCodeAccountError, string.Empty, loginInfo?.MeghiusultBelepes);
|
||||
}
|
||||
|
||||
if (loginInfo.IsDeniedSzirIntezmenyUser)
|
||||
{
|
||||
return LoginResult(success: false, ErrorResource.HibasFelhasznalonevVagyJelszo, ErrorCodeAccountError, string.Empty, loginInfo.MeghiusultBelepes);
|
||||
}
|
||||
|
||||
//NOTE: Végleges login
|
||||
var isLoginSuccess = Login(loginInfo, out var loginMessageString);
|
||||
|
||||
if (HttpContext.Request.Headers.AllKeys.Contains(nameof(KliensTipusEnum.Mobile), StringComparer.Ordinal))
|
||||
{
|
||||
ClaimData.KliensTipusa = KliensTipusEnum.Mobile;
|
||||
}
|
||||
|
||||
// Dashboard popup üzenetekhez:
|
||||
var popupCookie = new HttpCookie("DisplayedPopups")
|
||||
{
|
||||
HttpOnly = true,
|
||||
SameSite = SameSiteMode.None,
|
||||
Secure = true
|
||||
};
|
||||
|
||||
HttpContext.Response.Cookies.Add(popupCookie);
|
||||
|
||||
return LoginResult(isLoginSuccess, isLoginSuccess ? ErrorResource.SikeresBejelentkezes : loginMessageString, isLoginSuccess ? "Ok" : ErrorCodeAccountError, string.Empty, loginInfo.MeghiusultBelepes);
|
||||
}
|
||||
|
||||
public void LogOut()
|
||||
{
|
||||
MasterLayoutLogic.LogOut();
|
||||
}
|
||||
|
||||
public ActionResult ChangeLanguage(int id)
|
||||
{
|
||||
ClaimData.LCID = id;
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
private LoginModel BuildModel()
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetOrganizationConnectionType();
|
||||
|
||||
var dsDashboard = CommonUtils.GetLoginDashboardUzenet(connectionType);
|
||||
|
||||
var csokkentettGondviseloEnable = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(Enums.RendszerBeallitasTipusEnum.Csokkentett_gondviselok_kezelese);
|
||||
|
||||
var ds = new IntezmenyHelper(connectionType).GetOrganizationNameAndCode();
|
||||
|
||||
var model = new LoginModel
|
||||
{
|
||||
IntezmenyNeve = ds.Tables[0].Rows[0][0].ToString(),
|
||||
IntezmenyOMkod = ds.Tables[0].Rows[0][1].ToString(),
|
||||
LejartLicence = string.Equals(ds.Tables[0].Rows[0][2].ToString(), "T", StringComparison.OrdinalIgnoreCase),
|
||||
NextUpdateHeader = dsDashboard.Tables[0].Rows[0]["C_CIM"].ToString(),
|
||||
NextUpdateMessage = dsDashboard.Tables[0].Rows[0]["C_TARTALOM"].ToString(),
|
||||
CsokkentettGondviseloEnable = csokkentettGondviseloEnable,
|
||||
IsSzirIntezmeny = ds.Tables[0].Rows[0].Field<bool>("IsSzirIntezmeny_BOOL"),
|
||||
IsArchivIntezmeny = ds.Tables[0].Rows[0].Field<bool>("IsArchivIntezmeny_BOOL"),
|
||||
IdpLogoutUrl = IdpConfiguration.LogoutUrl,
|
||||
ReCaptchaIsEnabled = false
|
||||
};
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private JsonResult LoginResult(bool success, string errorMessage, string errorCode, string warningMessage, int? failedLoginCounter = 0)
|
||||
{
|
||||
var result = Json(new LoginResultModel { Success = success, ErrorMessage = errorMessage, ErrorCode = errorCode, WarningMessage = warningMessage, FailedLoginCounter = failedLoginCounter });
|
||||
return result;
|
||||
}
|
||||
|
||||
private bool Login(LoginInfo loginInfo, out string loginMessageString)
|
||||
{
|
||||
loginMessageString = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
using (var loginManager = new LoginManager())
|
||||
{
|
||||
loginInfo = loginManager.Login(loginInfo);
|
||||
}
|
||||
}
|
||||
catch (SecurityException)
|
||||
{
|
||||
if (ApplicationData.KretaDebug)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
loginMessageString = ErrorResource.HibasFelhasznalonevVagyJelszo;
|
||||
return false;
|
||||
}
|
||||
catch (DataIntegrityException)
|
||||
{
|
||||
if (ApplicationData.KretaDebug)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
loginMessageString = ErrorResource.NemLetezikAFelhasznalohozJelszo;
|
||||
return false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (ApplicationData.KretaDebug)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
SDAServer.Instance.Logger.ExceptionThrown(ex);
|
||||
loginMessageString = ErrorResource.IsmeretlenHibaTortent;
|
||||
return false;
|
||||
}
|
||||
|
||||
//NOTE: Ha nem sikerült bejelentkeznie
|
||||
if (loginInfo == null)
|
||||
{
|
||||
loginMessageString = ErrorResource.HibasFelhasznalonevVagyJelszo;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private string GetClientIP()
|
||||
{
|
||||
var clientIp = HttpContext.Request.UserHostAddress.Trim();
|
||||
try
|
||||
{
|
||||
var xForwardedFor = HttpContext.Request.Headers["X-Forwarded-For"];
|
||||
if (!string.IsNullOrWhiteSpace(xForwardedFor))
|
||||
{
|
||||
clientIp = xForwardedFor;
|
||||
}
|
||||
return clientIp;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return clientIp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class NevOktLeNemKotottMunkaidoListajaController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View(new NevOktLeNemKotottMunkaidoSearchModel() { FeladatEllatasiHelyId = ClaimData.FelhelySzuro });
|
||||
}
|
||||
|
||||
public ActionResult OpenInfoPopup(int nevOktLeNemKotottMunkaidoId)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new NemKotottMunkaidoHelper(connectionType);
|
||||
var felhasznaloHelper = new FelhasznaloHelper(connectionType);
|
||||
var nemKotottMunkaidoCO = helper.GetNemKotottMunkaidoById(nevOktLeNemKotottMunkaidoId);
|
||||
var infoModel = new NevOktLeNemKotottMunkaidoInfoModel
|
||||
{
|
||||
Hetirend = nemKotottMunkaidoCO.HetirendId.GetDisplayName<HetiRendTipusEnum>(ClaimData.SelectedTanevID.Value),
|
||||
Kategoria = nemKotottMunkaidoCO.TorvenyKategoriaId.GetDisplayName<TevekenysegTipusEnum>(ClaimData.SelectedTanevID.Value),
|
||||
Kezdete = nemKotottMunkaidoCO.Kezdete.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
|
||||
Megjegyzes = nemKotottMunkaidoCO.Megjegyzes,
|
||||
Megtartott = nemKotottMunkaidoCO.Megtartott.GetDisplayName(),
|
||||
NaplozottMegjegyzes = nemKotottMunkaidoCO.NaplozottMegjegyzes,
|
||||
TanarNeve = felhasznaloHelper.GetNyomtatasiNev(nemKotottMunkaidoCO.TanarId),
|
||||
TulajdonosNeve = felhasznaloHelper.GetNyomtatasiNev(nemKotottMunkaidoCO.TulajId),
|
||||
Vege = nemKotottMunkaidoCO.Vege.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
|
||||
};
|
||||
|
||||
var model = new PopUpModel(infoModel, "Info_PopUp");
|
||||
|
||||
model.AddCancelBtn(model, "NevOktLeNemKotottMunkaidoHelper.infoCancel");
|
||||
|
||||
return PartialView(Constants.General.PopupView, model);
|
||||
}
|
||||
}
|
||||
}
|
228
KretaWeb/Areas/Adminisztracio/Controllers/ProfilController.cs
Normal file
228
KretaWeb/Areas/Adminisztracio/Controllers/ProfilController.cs
Normal file
|
@ -0,0 +1,228 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core.FeatureToggle;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Areas.Adminisztracio.Helpers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Controllers;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Modal;
|
||||
using Kreta.Web.Models;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
using Kreta.Web.Utils;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class ProfilController : Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// Default view visszaadás
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ActionResult Index()
|
||||
{
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var model = new ProfilModel
|
||||
{
|
||||
IsElerhetosegAdatokSzerkeszthetoek = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.tanulok_es_gondviselok_szerkesztheti_sajat_elerhetosegi_adataikat)
|
||||
};
|
||||
|
||||
return View("Index", model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult GenerateNewEgyhaztartasbanElokRow(EgyhaztartasbanElokRowModel model)
|
||||
{
|
||||
return View("EgyHaztartasbanLevokRow", model);
|
||||
}
|
||||
|
||||
private readonly IFeatureContext FeatureContext;
|
||||
|
||||
public ProfilController(IFeatureContext featureContext)
|
||||
{
|
||||
FeatureContext = featureContext;
|
||||
}
|
||||
|
||||
public SajatAdatlapInfoModel GetDataForInfo(int id)
|
||||
{
|
||||
if (ClaimManager.HasPackage(KretaClaimPackages.Naplo.ClaimValue) || ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue))
|
||||
{
|
||||
return new ProfilHelper().GetTanarSajatAdatlapDataForInfo(id);
|
||||
}
|
||||
if (ClaimManager.HasPackage(KretaClaimPackages.Ellenorzo.ClaimValue))
|
||||
{
|
||||
if (ClaimData.GondviseloId.HasValue)
|
||||
{
|
||||
return new ProfilHelper().GetGondviseloSajatAdatlapDataForInfo(ClaimData.GondviseloId.Value, Request.Url.Host);
|
||||
}
|
||||
return new ProfilHelper().GetTanuloSajatAdatlapDataForInfo(id, Request.Url.Host);
|
||||
}
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public ActionResult SajatAdatlapPopUp()
|
||||
{
|
||||
SajatAdatlapInfoModel alkalmazottModel = GetDataForInfo(ClaimData.FelhasznaloId);
|
||||
alkalmazottModel.HideControlsForAlkalmazott = true;
|
||||
|
||||
var model = new PopUpModel(alkalmazottModel, "Info_SajatAdatlap");
|
||||
|
||||
model.Buttons.Add(new ModalButtonModel() { Name = "BtnSajatAdatlapBezaras", Text = Resources.CommonResource.Bezaras, EventName = "SajatAdatlapHelper.closeSajatAdatlapPopUp" });
|
||||
|
||||
return PartialView(Constants.General.PopupView, model);
|
||||
}
|
||||
|
||||
public ActionResult LoadJelszoModositas()
|
||||
{
|
||||
var model = new ProfilModel
|
||||
{
|
||||
JelszoValtoztatasNemLehetseges = ClaimManager.GetClaimIdentity().HasClaim(KretaClaimTypes.Resource, KretaClaimPackages.Ellenorzo.Resources.A_felhasznalok_nem_valtoztathatjak_meg_a_jelszavukat_az_elektronikus_ellenorzoben)
|
||||
};
|
||||
return PartialView("JelszoModositas_Bevitel", model);
|
||||
}
|
||||
|
||||
public ActionResult LoadProfilkepFeltoltes()
|
||||
{
|
||||
var model = new ProfilModel();
|
||||
return PartialView("ProfilkepFeltoltes_Bevitel", model);
|
||||
}
|
||||
|
||||
public ActionResult LoadTippekBeallitasa()
|
||||
{
|
||||
var model = new TippModel();
|
||||
model.TippekElrejtese = ProfileUtils.HideTips;
|
||||
model.EmailHelyettesites = ProfileUtils.EmailHelyettesites;
|
||||
model.HianyzokAutoKitoltes = ProfileUtils.IsHianyzokAutoKitoltesEnabled;
|
||||
model.FogadooraEmail = ProfileUtils.FogadooraEmail;
|
||||
model.FogadooraEmailUj = ProfileUtils.FogadooraEmailUj;
|
||||
model.FogadooraEmailJelentkezes = ProfileUtils.FogadooraEmailJelentkezes;
|
||||
model.FogadooraEmailJelentkezesLemondas = ProfileUtils.FogadooraEmailJelentkezesLemondas;
|
||||
model.FogadooraEmlekeztetoEmailJelentkezes = ProfileUtils.FogadooraEmlekeztetoEmailJelentkezes;
|
||||
model.FogadooraEmailTorles = ProfileUtils.FogadooraEmailTorles;
|
||||
model.FogadooraEmail3Nappal = ProfileUtils.FogadooraEmail3Nappal;
|
||||
model.FogadooraEmail1Nappal = ProfileUtils.FogadooraEmail1Nappal;
|
||||
model.NemNaplozottTanorakEmail = ProfileUtils.NemNaplozottTanorakEmail;
|
||||
model.AtlagMegjelenitesTipusa = (int)ProfileUtils.AtlagMegjelenitesTipusa;
|
||||
model.AtlagbaBeleszamitoOsztalyTipusa = (int)ProfileUtils.AtlagbaBeleszamitoOsztalyTipusa;
|
||||
model.AtlagMegjelenitesTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetAtlagMegjelenitesTipusList();
|
||||
model.AtlagbaBeleszamitoOsztalyTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetAtlagbaBeleszamitoOsztalyTipusList();
|
||||
model.HaladasiNaploFulTipusa = (int)ProfileUtils.HaladasiNaploFulTipusa;
|
||||
model.HaladasiNaploFulTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetHaladasiNaploFulTipusList();
|
||||
model.HaladasiNaploNezetTipusa = (int)ProfileUtils.HaladasiNaploNezetTipusa;
|
||||
model.HaladasiNaploNezetTipusaList = new ComboBoxHelperEnumApiController(FeatureContext).GetHaladasiNaploNezetTipusList();
|
||||
model.HetirendMegjeleniteseBelepeskor = ProfileUtils.HetirendMegjeleniteseBelepeskor;
|
||||
|
||||
return PartialView("Tippek_Beallitas", model);
|
||||
}
|
||||
|
||||
public ActionResult LoadElerhetosegekSzerk()
|
||||
{
|
||||
var elerhetosegek = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetElerhetosegek(ClaimData.FelhasznaloId);
|
||||
var model = ConvertElerhetosegekModCoToModel(elerhetosegek);
|
||||
return PartialView("ElerhetosegekModositas_Bevitel", model);
|
||||
}
|
||||
|
||||
public ActionResult LoadElerhetosegek()
|
||||
{
|
||||
var elerhetosegek = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetElerhetosegek(ClaimData.FelhasznaloId);
|
||||
var model = ConvertElerhetosegekModCoToModel(elerhetosegek);
|
||||
return PartialView("ElerhetosegekMegjelenitese", model);
|
||||
}
|
||||
|
||||
public ActionResult LoadGondviseloAdatokSzerk()
|
||||
{
|
||||
var model = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviseloElerhetosegAdatok(ClaimData.GondviseloId.Value);
|
||||
|
||||
return PartialView("GondviseloAdatokSzerkesztese", ConvertGondviseloAdatokModCOToModel(model));
|
||||
}
|
||||
|
||||
public ActionResult LoadGondviseloAdatok()
|
||||
{
|
||||
var model = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviseloElerhetosegAdatok(ClaimData.GondviseloId.Value);
|
||||
|
||||
return PartialView("GondviseloAdatokMegjelenitese", ConvertGondviseloAdatokModCOToModel(model));
|
||||
}
|
||||
|
||||
public ActionResult LoadGondviselo4TSzerkesztese()
|
||||
{
|
||||
if (!ClaimData.FeltarGondviseloEnabled)
|
||||
{
|
||||
return PartialView("Empty");
|
||||
}
|
||||
|
||||
var co = new GondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviselo4TAdatok(ClaimData.GondviseloId.Value);
|
||||
return PartialView("Gondviselo4TAdatokSzerkesztese", new Gondviselo4TAdatokModel(co));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[MvcValidateAjaxAntiForgeryToken]
|
||||
public ActionResult TippBeallitasokMentese(TippModel model)
|
||||
{
|
||||
ProfileUtils.HideTips = model.TippekElrejtese;
|
||||
ProfileUtils.EmailHelyettesites = model.EmailHelyettesites;
|
||||
ProfileUtils.IsHianyzokAutoKitoltesEnabled = model.HianyzokAutoKitoltes;
|
||||
ProfileUtils.FogadooraEmail = model.FogadooraEmail;
|
||||
ProfileUtils.FogadooraEmailUj = model.FogadooraEmailUj;
|
||||
ProfileUtils.FogadooraEmailJelentkezes = model.FogadooraEmailJelentkezes;
|
||||
ProfileUtils.FogadooraEmailJelentkezesLemondas = model.FogadooraEmailJelentkezesLemondas;
|
||||
ProfileUtils.FogadooraEmlekeztetoEmailJelentkezes = model.FogadooraEmlekeztetoEmailJelentkezes;
|
||||
ProfileUtils.FogadooraEmailTorles = model.FogadooraEmailTorles;
|
||||
ProfileUtils.FogadooraEmail3Nappal = model.FogadooraEmail3Nappal;
|
||||
ProfileUtils.FogadooraEmail1Nappal = model.FogadooraEmail1Nappal;
|
||||
ProfileUtils.NemNaplozottTanorakEmail = model.NemNaplozottTanorakEmail;
|
||||
ProfileUtils.AtlagMegjelenitesTipusa = (AtlagMegjelenitesTipus)model.AtlagMegjelenitesTipusa;
|
||||
ProfileUtils.AtlagbaBeleszamitoOsztalyTipusa = (AtlagbaBeleszamitoOsztalyTipus)model.AtlagbaBeleszamitoOsztalyTipusa;
|
||||
ProfileUtils.HaladasiNaploFulTipusa = (HaladasiNaploFulTipus)model.HaladasiNaploFulTipusa;
|
||||
ProfileUtils.HaladasiNaploNezetTipusa = (HaladasiNaploNezetTipus)model.HaladasiNaploNezetTipusa;
|
||||
ProfileUtils.HetirendMegjeleniteseBelepeskor = model.HetirendMegjeleniteseBelepeskor;
|
||||
|
||||
ProfileUtils.SaveUserProfileDocument();
|
||||
|
||||
return new HttpStatusCodeResult(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
private GondviseloAdatokModModel ConvertGondviseloAdatokModCOToModel(GondviseloAdatokModCO co)
|
||||
{
|
||||
return new GondviseloAdatokModModel
|
||||
{
|
||||
AktEmail = co.AktEmail,
|
||||
AktTelefon = co.AktTelefon
|
||||
};
|
||||
}
|
||||
|
||||
private ElerhetosegekModel ConvertElerhetosegekModCoToModel(ElerhetosegekModCO co)
|
||||
{
|
||||
return new ElerhetosegekModel
|
||||
{
|
||||
Email = co.Email.Select(e => new EmailElerhetosegModel
|
||||
{
|
||||
Alapertelmezett = e.Alapertelmezett,
|
||||
EmailCim_Input = e.EmailCim,
|
||||
Tipus = e.Tipus,
|
||||
Id = e.Id,
|
||||
Status = e.Status
|
||||
}).ToList(),
|
||||
Telefon = co.Telefon.Select(t => new TelefonElerhetosegModel
|
||||
{
|
||||
Alapertelmezett = t.Alapertelmezett,
|
||||
Telefonszam = t.Telefonszam,
|
||||
Tipus = t.Tipus,
|
||||
Id = t.Id,
|
||||
Status = t.Status
|
||||
}).ToList()
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,231 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.ApiControllers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Models.EditorTemplates;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class SystemSettingsController : Controller
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public static string TanuloErtekelesMondatbankPopupName => "TanuloErtekelesMondatbank_Popup";
|
||||
public static string TanuloErtekelesMondatbankGridName => "TanuloErtekelesMondatbankGrid";
|
||||
|
||||
public static string TanuloErtekelesMondatbankItemEditPopupName => "TanuloErtekelesMondatbankItem_Edit_Popup";
|
||||
public static string TanuloErtekelesMondatbankItemEditFormName => "TanuloErtekelesMondatbankItemEditForm";
|
||||
public static string TanuloErtekelesMondatbankItemTobbesEditPopupName => "TanuloErtekelesMondatbankItem_TobbesEdit_Popup";
|
||||
|
||||
private static string AMIGroupName = StringResourcesUtil.GetString(2087);
|
||||
private static string HRModul = "HRModul";
|
||||
private static string TavolletGroupName = StringResourcesUtil.GetString(8867);
|
||||
|
||||
#endregion Properties
|
||||
// GET: Adminisztracio/SystemSettings
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new SystemSettingsModel
|
||||
{
|
||||
ChildModels = new List<PanelBarChildModel>(),
|
||||
PanelName = "SystemSettingsPanel",
|
||||
ExpandMode = Kendo.Mvc.UI.PanelBarExpandMode.Multiple,
|
||||
Animation = true
|
||||
};
|
||||
|
||||
model.IsIntezmenySzakkepzoJuttatas = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok().IsSzakkepzoJuttatas;
|
||||
|
||||
var icHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
|
||||
var hrIsEnabled = icHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.HRModul, IntezmenyConfigTipusEnum.IsEnabled);
|
||||
|
||||
using (var api = new SystemSettingsApiController())
|
||||
{
|
||||
var groupSettings = api.GetSystemSettings();
|
||||
|
||||
foreach (var group in groupSettings.Values)
|
||||
{
|
||||
if (!ClaimData.HasAmi && group.Title == AMIGroupName)
|
||||
continue;
|
||||
|
||||
if (!hrIsEnabled && group.Title == TavolletGroupName)
|
||||
continue;
|
||||
|
||||
List<object> childSettings = new List<object>();
|
||||
foreach (var setting in group.Childs.Values)
|
||||
{
|
||||
childSettings.Add(setting);
|
||||
}
|
||||
|
||||
model.ChildModels.Add(new PanelBarChildModel { PartialViewName = "SystemSettingsPanelBar", PartialViewTitle = group.Title, Data = childSettings, Enabled = group.Enabled });
|
||||
}
|
||||
}
|
||||
|
||||
var specialisBeallitasokModel = new SpecialisBeallitasokModel
|
||||
{
|
||||
ChildModels = new List<PanelBarChildModel>(),
|
||||
PanelName = "SpecialisBeallitasokPanel",
|
||||
ExpandMode = Kendo.Mvc.UI.PanelBarExpandMode.Multiple,
|
||||
Animation = true
|
||||
};
|
||||
specialisBeallitasokModel.ChildModels.Add(new PanelBarChildModel { PartialViewName = "SpecialisBeallitasokPanelBar", PartialViewTitle = SystemSettingsResource.SpecialisBeallitasok });
|
||||
|
||||
model.SpecialisBeallitasokModel = specialisBeallitasokModel;
|
||||
|
||||
var rendszerszintuTorlesiLehetosegekModel = new RendszerszintuTorlesiLehetosegekModel
|
||||
{
|
||||
ChildModels = new List<PanelBarChildModel>(),
|
||||
PanelName = "RendszerszintuTorlesPanel",
|
||||
ExpandMode = Kendo.Mvc.UI.PanelBarExpandMode.Multiple,
|
||||
Animation = true
|
||||
};
|
||||
rendszerszintuTorlesiLehetosegekModel.ChildModels.Add(new PanelBarChildModel { PartialViewName = "RendszerszintuTorlesPanelBar", PartialViewTitle = SystemSettingsResource.RendszerszintuTorlesiLehetosegek });
|
||||
|
||||
model.RendszerszintuTorlesiLehetosegekModel = rendszerszintuTorlesiLehetosegekModel;
|
||||
|
||||
if (model.IsIntezmenySzakkepzoJuttatas)
|
||||
{
|
||||
var juttatasBeallitasokModel = new JuttatasBeallitasokModel
|
||||
{
|
||||
ChildModels = new List<PanelBarChildModel>(),
|
||||
PanelName = "JuttatasBeallitasokPanel",
|
||||
ExpandMode = Kendo.Mvc.UI.PanelBarExpandMode.Multiple,
|
||||
Animation = true,
|
||||
};
|
||||
juttatasBeallitasokModel.ChildModels.Add(new PanelBarChildModel { PartialViewName = "JuttatasBeallitasokPanelBar", PartialViewTitle = SystemSettingsResource.JuttatasBeallitasok });
|
||||
|
||||
model.JuttatasBeallitasokModel = juttatasBeallitasokModel;
|
||||
}
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
||||
public ActionResult OpenCsoportTipusListWindow()
|
||||
{
|
||||
PopUpModel pm = new PopUpModel(null, "CsoportTipusList_Edit_Popup");
|
||||
pm = pm.AddCancelBtn(pm, "SettingsHelper.csoportTipusListWindowClose");
|
||||
pm = pm.AddBtn(pm, "saveCsoportTipusList", CommonResource.Mentes, "SettingsHelper.saveCsoportTipusList");
|
||||
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public ActionResult OpenGradeWeightWindow()
|
||||
{
|
||||
SystemSettingsApiController api = new SystemSettingsApiController();
|
||||
var model = api.GetGradeWeights();
|
||||
|
||||
PopUpModel pm = new PopUpModel(model, "SetGradeWeights_Bevitel");
|
||||
pm = pm.AddCancelBtn(pm, "SettingsHelper.gradeWeightsWindowClose");
|
||||
pm = pm.AddBtn(pm, "saveGradeWeights", CommonResource.Mentes, "SettingsHelper.saveGradeWeights");
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
public ActionResult FejlecSzerkesztoPopUp()
|
||||
{
|
||||
PopUpModel pm;
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var model = new FejlecLablecSzerkesztoModel(helper.GetIntezmenyFejlec()) { IsFejlec = true };
|
||||
pm = CreateFejlecLablecModel(model);
|
||||
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
public ActionResult LablecSzerkesztoPopUp()
|
||||
{
|
||||
PopUpModel pm;
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var model = new FejlecLablecSzerkesztoModel(helper.GetIntezmenyLablec());
|
||||
pm = CreateFejlecLablecModel(model);
|
||||
|
||||
return PartialView(Constants.General.PopupView, pm);
|
||||
}
|
||||
|
||||
private PopUpModel CreateFejlecLablecModel(FejlecLablecSzerkesztoModel model)
|
||||
{
|
||||
var pm = new PopUpModel(model, "FejlecLablecSzerkeszto");
|
||||
pm = pm.AddCancelBtn(pm, "function(){FejlecLablecSzerkesztoHelper.Cancel();}");
|
||||
pm = pm.AddDeleteBtn(pm, "function(){FejlecLablecSzerkesztoHelper.Torles();}");
|
||||
pm = pm.AddOkBtn(pm, "function(){FejlecLablecSzerkesztoHelper.Mentes();}");
|
||||
pm = pm.AddBtn(pm, "generate", CommonResource.Elonezet, "function(){FejlecLablecSzerkesztoHelper.Generalas();}");
|
||||
return pm;
|
||||
}
|
||||
|
||||
#region Tanuló Értékelés Mondatbank
|
||||
|
||||
[HttpGet]
|
||||
[MvcValidateAjaxAntiForgeryToken]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
||||
public ActionResult OpenTanuloErtekelesMondatbankPopup()
|
||||
{
|
||||
PopUpModel popUpModel = new PopUpModel(new TanuloErtekelesMondatbankSearchModel(), TanuloErtekelesMondatbankPopupName);
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "TanuloErtekelesMondatbankCancelButton", CommonResource.Megse, "TanuloErtekelesMondatbankHelper.tanuloErtekelesMondatbankPopupCancel", "BtnCancel");
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[MvcValidateAjaxAntiForgeryToken]
|
||||
public ActionResult OpenTanuloErtekelesMondatbankItemEditPopup(int? id)
|
||||
{
|
||||
bool isModify = id.IsEntityId();
|
||||
TanuloErtekelesMondatbankItemModel model;
|
||||
if (isModify)
|
||||
{
|
||||
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
model = new TanuloErtekelesMondatbankItemModel(helper.GetTanuloErtekelesMondatbankItemById(id.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
model = new TanuloErtekelesMondatbankItemModel();
|
||||
}
|
||||
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
model.NemzetiDokumentumNyelvek = systemSettingsHelper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
||||
|
||||
var popupModel = new PopUpModel(model, TanuloErtekelesMondatbankItemEditPopupName);
|
||||
popupModel = popupModel.AddCancelBtn(popupModel, "TanuloErtekelesMondatbankHelper.tanuloErtekelesMondatbankItemEditPopupCancel");
|
||||
popupModel = popupModel.AddOkBtn(popupModel, "TanuloErtekelesMondatbankHelper.tanuloErtekelesMondatbankItemEditPopupSave");
|
||||
if (isModify)
|
||||
{
|
||||
popupModel.AddDeleteBtn(popupModel, "TanuloErtekelesMondatbankHelper.tanuloErtekelesMondatbankItemEditPopupDelete");
|
||||
}
|
||||
|
||||
return PartialView(Constants.General.PopupView, popupModel);
|
||||
}
|
||||
|
||||
public ActionResult OpenTobbesModTanuloErtekelesMondatbankPopUp(List<int> idList)
|
||||
{
|
||||
var model = new TanuloErtekelesMondatbankTobbesItemModel
|
||||
{
|
||||
SelectedIdList = idList,
|
||||
};
|
||||
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
model.NemzetiDokumentumNyelvek = systemSettingsHelper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
||||
|
||||
var popupModel = new PopUpModel(model, TanuloErtekelesMondatbankItemTobbesEditPopupName);
|
||||
popupModel = popupModel.AddCancelBtn(popupModel, "TanuloErtekelesMondatbankHelper.tanuloErtekelesMondatbankItemEditPopupCancel");
|
||||
popupModel = popupModel.AddOkBtn(popupModel, "TanuloErtekelesMondatbankHelper.tanuloErtekelesMondatbankItemTobbesEditPopupSave");
|
||||
|
||||
return PartialView(Constants.General.PopupView, popupModel);
|
||||
}
|
||||
|
||||
#endregion Tanuló Értékelés Mondatbank
|
||||
}
|
||||
}
|
|
@ -0,0 +1,209 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
using Kreta.Web.Configuration;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
using Kreta.Web.Utils;
|
||||
|
||||
namespace Kreta.Web.Areas.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
public class SzerepkorValasztoController : Controller
|
||||
{
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> EUgyinteztesPermissions = new List<SzerepkorTipusEnum>
|
||||
{
|
||||
SzerepkorTipusEnum.eUgyintezo,
|
||||
SzerepkorTipusEnum.Alairo,
|
||||
SzerepkorTipusEnum.Penztaros,
|
||||
SzerepkorTipusEnum.PenzugyiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiEllenorzo,
|
||||
SzerepkorTipusEnum.TeremberletJelenletEllenorzo,
|
||||
SzerepkorTipusEnum.BelepokartyaAdmin
|
||||
};
|
||||
|
||||
private static readonly IEnumerable<SzerepkorTipusEnum> Permissions = new List<SzerepkorTipusEnum>
|
||||
{
|
||||
SzerepkorTipusEnum.eUgyintezo,
|
||||
SzerepkorTipusEnum.Alairo,
|
||||
SzerepkorTipusEnum.Penztaros,
|
||||
SzerepkorTipusEnum.PenzugyiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiAdmin,
|
||||
SzerepkorTipusEnum.EtkezesiEllenorzo,
|
||||
SzerepkorTipusEnum.TeremberletJelenletEllenorzo,
|
||||
SzerepkorTipusEnum.FokuszMonitoring,
|
||||
SzerepkorTipusEnum.IskolaEgeszsegugyiKoordinator,
|
||||
SzerepkorTipusEnum.Vedono,
|
||||
SzerepkorTipusEnum.Iskolaorvos,
|
||||
SzerepkorTipusEnum.IskolaEgeszsegugyiAsszisztens,
|
||||
SzerepkorTipusEnum.IskolaEgeszsegugyiLekerdezo,
|
||||
SzerepkorTipusEnum.BelepokartyaAdmin,
|
||||
SzerepkorTipusEnum.LeltarConcerned,
|
||||
SzerepkorTipusEnum.Konyvtaros,
|
||||
SzerepkorTipusEnum.FELTAR_EsetKezelo,
|
||||
SzerepkorTipusEnum.FELTAR_EszkozMenedzser,
|
||||
SzerepkorTipusEnum.KerdoivKitolto_KerdoivKezelo,
|
||||
SzerepkorTipusEnum.Dualis_Admin,
|
||||
SzerepkorTipusEnum.FELTAR_EsetJovahagyo,
|
||||
SzerepkorTipusEnum.FELTAR_EsetKozremukodo,
|
||||
SzerepkorTipusEnum.FELTAR_Munkavegzo,
|
||||
SzerepkorTipusEnum.FELTAR_SzerzodesMenedzser
|
||||
};
|
||||
|
||||
private IIdpConfiguration IdpConfiguration { get; }
|
||||
|
||||
public SzerepkorValasztoController(IIdpConfiguration idpConfiguration)
|
||||
{
|
||||
IdpConfiguration = idpConfiguration ?? throw new ArgumentNullException(nameof(idpConfiguration));
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
var felhasznaloSzerepkorok = ClaimData.FelhasznaloSzerepkorok;
|
||||
// NOTE: Ha a felhasználó szerepkörök között szerepel kréta adminisztrátor és amellett szervezethez köthető szerepkör(pl.: duális adminisztrátor),
|
||||
// akkor azokat nem kell megjeleníteni, mert azok részei az intézményi kréta admin felületének/menüjének, ezért az ilyen szerepköröket kivesszük a listából.
|
||||
if (felhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Adminisztrator) && felhasznaloSzerepkorok.Any(x => FelhasznaloHelper.SzervezetiPermissions.Contains(x.Key)))
|
||||
{
|
||||
foreach (var szerepkorTipusEnum in FelhasznaloHelper.SzervezetiPermissions)
|
||||
{
|
||||
felhasznaloSzerepkorok.Remove(szerepkorTipusEnum);
|
||||
}
|
||||
}
|
||||
|
||||
var allowedRoles = GetAllowedRoles(felhasznaloSzerepkorok);
|
||||
|
||||
if (ClaimData.JustLEPOrganization && !ClaimData.FelhasznaloSzerepkorok.ContainsKey(SzerepkorTipusEnum.Adminisztrator))
|
||||
{
|
||||
var lepEloadasJegyzekHelper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var hasLepAccess = lepEloadasJegyzekHelper.HasLEPAccess(ClaimData.FelhasznaloId);
|
||||
|
||||
if (!hasLepAccess)
|
||||
{
|
||||
return Redirect(Url.Content(@"~/HibaOldal/IndexLEPNincsJog"));
|
||||
}
|
||||
|
||||
var role = allowedRoles[0];
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(new List<SzerepkorTipusEnum> { role.Key }, GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
return Redirect(Url.Content(@"~/LEPModul/EloadasokKezelese"));
|
||||
}
|
||||
|
||||
// NOTE: Ha a belépett felhasználó szervezethez köthető alkalmazott(pl.: duális oktató), akkor semmi más ne jelenjen meg csak a szervezethez köthető elemek.
|
||||
var isAlkalmazottSzervezeti = new SzervezetHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsAlkalmazottSzervezeti(ClaimData.FelhasznaloId);
|
||||
if (isAlkalmazottSzervezeti)
|
||||
{
|
||||
if (allowedRoles.Count == 1)
|
||||
{
|
||||
var role = allowedRoles[0];
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(new List<SzerepkorTipusEnum> { role.Key }, GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
|
||||
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
|
||||
}
|
||||
|
||||
return View("Index", ModelBuilder(allowedRoles));
|
||||
}
|
||||
|
||||
if (allowedRoles.Any())
|
||||
{
|
||||
if (allowedRoles.Count == 1)
|
||||
{
|
||||
var role = allowedRoles[0];
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(new List<SzerepkorTipusEnum> { role.Key }, GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
|
||||
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
|
||||
}
|
||||
|
||||
return View("Index", ModelBuilder(allowedRoles));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.Count >= 2 && felhasznaloSzerepkorok.Keys.Any(x => Permissions.Contains(x)))
|
||||
{
|
||||
var role = allowedRoles[0];
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(new List<SzerepkorTipusEnum> { role.Key }, GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
|
||||
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
|
||||
}
|
||||
|
||||
var intezmenyConfigHelper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.IsEnabled))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Konyvtar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.All(x => EUgyinteztesPermissions.Contains(x)))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.All(x => x == SzerepkorTipusEnum.FokuszMonitoring))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.ESL, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
if (felhasznaloSzerepkorok.Keys.All(x => x == SzerepkorTipusEnum.LeltarConcerned))
|
||||
{
|
||||
return Redirect(Classes.Utils.GetAuthenticationTokenRedirectUrl(intezmenyConfigHelper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.Leltar, IntezmenyConfigTipusEnum.Url), IdpConfiguration.AuthenticationTokenKey));
|
||||
}
|
||||
|
||||
return View("Index", ModelBuilder(allowedRoles));
|
||||
}
|
||||
|
||||
public ActionResult ChangeRole(SzerepkorTipusEnum role)
|
||||
{
|
||||
var felhasznaloSzerepkorok = ClaimData.FelhasznaloSzerepkorok;
|
||||
|
||||
if (felhasznaloSzerepkorok.ContainsKey(role))
|
||||
{
|
||||
ClaimManager.SetFelhasznaloSzerepkorClaim(new List<SzerepkorTipusEnum> { role }, GetEugyintezesESLPermissions(felhasznaloSzerepkorok));
|
||||
|
||||
var isPedagogiaiSzakszolgalat = role == SzerepkorTipusEnum.Adminisztrator && new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMukodesiHelyekForFelhelyValaszto().Any(x => x.FelhelyId.IsEntityId());
|
||||
return Json(new { Url = Url.Content(isPedagogiaiSzakszolgalat ? Constants.General.FelHelyValasztoPage : CommonExtensions.GetDefaultPage()), Success = true });
|
||||
}
|
||||
|
||||
return Json(new { Success = false });
|
||||
}
|
||||
|
||||
private SzerepkorValasztoModel ModelBuilder(List<KeyValuePair<SzerepkorTipusEnum, string>> allowedRoles)
|
||||
{
|
||||
var model = new SzerepkorValasztoModel();
|
||||
var shortname = ClaimData.OrganizationShortName;
|
||||
model.OrganizationName = ClaimData.OrganizationCode + " - " + (string.IsNullOrWhiteSpace(shortname) ? ClaimData.OrganizationName : shortname);
|
||||
model.UserName = $"{ClaimData.FelhasznaloNev} {(!string.IsNullOrWhiteSpace(ClaimData.GondviseloNeve) ? "(" + ClaimData.GondviseloNeve + ")" : "")}";
|
||||
model.ProfilImgSrc = ProfileUtils.UserProfileImage;
|
||||
|
||||
var currentRole = ClaimData.FelhasznaloSzerepkor;
|
||||
foreach (var item in allowedRoles)
|
||||
{
|
||||
model.Roles.Add(new UserRoles { Name = item.Value, Szerepkor = item.Key, IsActive = item.Key.Equals(currentRole) });
|
||||
}
|
||||
|
||||
if (currentRole.Equals(SzerepkorTipusEnum.Nincs_beallitva))
|
||||
{
|
||||
model.CancelLinkText = StringResourcesUtil.GetString(2582); /* Kijelentkezés */
|
||||
model.CancelLinkAction = "RoleChange.logout()";
|
||||
}
|
||||
else
|
||||
{
|
||||
model.CancelLinkText = StringResourcesUtil.GetString(3059); /* Mégse */
|
||||
model.CancelLinkAction = "RoleChange.back()";
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private List<KeyValuePair<SzerepkorTipusEnum, string>> GetAllowedRoles(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
=> felhasznaloSzerepkorok.Where(x => !Constants.General.NotVisiblePermissions.Contains(x.Key)).ToList();
|
||||
|
||||
private List<SzerepkorTipusEnum> GetEugyintezesESLPermissions(Dictionary<SzerepkorTipusEnum, string> felhasznaloSzerepkorok)
|
||||
=> Permissions.Where(x => felhasznaloSzerepkorok.Keys.Any(y => y == x)).ToList();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,196 @@
|
|||
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}" };
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue