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

View file

@ -0,0 +1,18 @@
using System.Web.Mvc;
namespace Kreta.Web.Areas.Adminisztracio
{
public class AdminisztracioAreaRegistration : AreaRegistration
{
public override string AreaName => "Adminisztracio";
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Adminisztracio_default",
"Adminisztracio/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
}

View file

@ -0,0 +1,543 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Classes.ComboBox;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
using SDA.DataProvider;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdatszotarApiController : ApiController
{
/// <summary>
/// Adatszótár grid visszaadás
/// </summary>
/// <param name="data"></param>
/// <param name="request"></param>
/// <returns></returns>
public DataSourceResult GetAdatszotarGrid(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<AdatszotarSearchModel>(data);
if (!model.AdatszotarTipusTypeId.IsEntityId())
{
return new DataSourceResult();
}
var (gridParameter, modelList) = GetGridData(request, model.AdatszotarTipusTypeId);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<AdatszotarSearchModel>(data);
if (!model.AdatszotarTipusTypeId.IsEntityId())
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AdatszotarTipusaNincsMegadva);
}
try
{
var (gridParameter, modelList) = GetGridData(request, model.AdatszotarTipusTypeId);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var exportAttribute = model.AdatszotarTipusTypeId == (int)GeneratedAdatszotarTipusEnum.NapTipus ? AdatszotarGridModel.AdatszotarNapTipusExportAttributeId : AdatszotarGridModel.AdatszotarExportAttributeId;
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AdatszotarGridModel>(exportAttribute);
var memoryStream = SimpleExportLogic.GetExport(AdminisztracioResource.AdatszotarExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), AdminisztracioResource.AdatszotarExportFileName);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<AdatszotarGridModel> modelList) GetGridData(DataSourceRequest request, int? adatszotarTipusTypeId)
{
var gridParameter = Converter.GridParameter(request);
var coList = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAdatszotarCoList((GeneratedAdatszotarTipusEnum)adatszotarTipusTypeId);
var modelList = new List<AdatszotarGridModel>();
foreach (var co in coList)
{
var gridModel = new AdatszotarGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveAdatszotarData(AdatszotarGridModel model)
{
try
{
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus)
{
if (model.ZaradekSzovegList.Any(x => !string.IsNullOrWhiteSpace(x.Szoveg) && x.Szoveg.Length > 255))
{
throw new StatusError(HttpStatusCode.BadRequest, string.Format(CommonResource.ZaradekSzoveg0Max255Karakter, ((AnyanyelvEnum)model.ZaradekSzovegList.First(x => x.Szoveg.Length > 255).NyelvId).GetDisplayName(ClaimData.SelectedTanevID.Value)));
}
}
if (Core.Constants.NemBovithetoAdatszotarTipusLista.Contains(model.AdatszotarTipusId) || model.IsProtected)
{
if (!model.AdatszotarID.HasValue || model.AdatszotarID.Value == 0)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.KivalasztottAdatszotarNemBovitheto);
}
else
{
var co = helper.GetAdatszotarElem(model.AdatszotarID.Value);
co.Lathato = model.IsLathato;
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.NapTipus)
{
co.IsSorszamozando = model.IsSorszamozando;
co.IsTanorai = model.IsTanorai;
co.IsTanorankivuli = model.IsTanorankivuli;
co.IsLeNemKotottMunkaido = model.IsLeNemKotottMunkaido;
}
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod)
{
co.Color = model.Color != null ? model.Color.Replace("#", "") : "";
co.IsBold = model.IsBold;
co.Suly = model.Suly;
}
if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus)
{
co.ZaradekSzovegCoList =
model.ZaradekSzovegList.Where(x => x.NyelvId != (int)AnyanyelvEnum.magyar).ToList().ConvertAll(x => new AdatszotarZaradekNyelvCo
{
NyelvId = x.NyelvId,
Name = x.Szoveg
});
}
helper.Update(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
if (ModelState.IsValid &&
(model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod ||
model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.NapTipus ||
model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus ||
!model.IsProtected))
{
if (model.AdatszotarID.HasValue && model.AdatszotarID > 0)
{
AdatszotarCO co = model.ToCo();
helper.Update(co, ClaimData.KovTanevID);
}
else
{
AdatszotarCO co = model.ToCo();
helper.Insert(co);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
else if (model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod || model.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.NapTipus || !model.IsProtected)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.VedettAdatszotarnakAMegnevezesetNemLehetModositani);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
catch (UniqueKeyViolationException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottNevMarLetezik);
}
catch (CannotBeInsertedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
/// <summary>
/// Adatszótár láthatóságának beállítása és mentése
/// </summary>
/// <param name="elemId"></param>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SetLathatosag([FromBody] string elemId)
{
AdatszotarHelper helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var co = helper.GetAdatszotarElem(Convert.ToInt32(elemId));
co.Lathato = !co.Lathato;
helper.Update(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
/// <summary>
/// Adatszótár aktiválás mentés
/// </summary>
/// <param name="parameters"></param>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveAdatszotarActivate([FromBody] ItemListModel parameters)
{
if (parameters.Items.Count == 0)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.ValasszonKiLegalabbEgyElemet);
}
bool success = GroupModifyItemActivity(parameters, true);
if (!success)
{
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.AktivalasNemLehetsegesAzElemVedett);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
/// <summary>
/// Adatszótár deaktiválás mentés
/// </summary>
/// <param name="parameters"></param>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveAdatszotarDeactivate([FromBody] ItemListModel parameters)
{
if (parameters.Items.Count == 0)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.ValasszonKiLegalabbEgyElemet);
}
bool success = GroupModifyItemActivity(parameters, false);
if (!success)
{
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.DeaktivalasNemLehetsegesAzElemVedett);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElementsOrder(OrderItemListModel parameters)
{
if (parameters.Items.Count == 0)
{
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.NincsAdatszotarLekerveMentesCsakKeresesUtanLehetseges);
}
foreach (var item in parameters.Items)
{
if (item.Sorszam <= 0)
{
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.SorszamErtekeCsakPozitivSzamLehet);
}
}
try
{
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var item in parameters.Items)
{
helper.UpdateSorszam(item.Id, item.Sorszam, ClaimData.KovTanevID);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeModifiedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
/// <summary>
/// Adatszótár törlés
/// </summary>
/// <param name="parameters"></param>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteAdatszotar([FromBody] int id)
{
try
{
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (helper.IsProtected(id))
{
throw new StatusError(HttpStatusCode.BadRequest, AdminisztracioResource.TorlesNemLehetsegesAzElemVedett);
}
helper.Delete(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.AdatszotarNemTorolhetoKapcsolatMiatt, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
catch (StatusError)
{
throw;
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AzElemNemTorolhetoMertEgyVagyTobbKapcsolodasaVan) { UnHandledException = e };
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult DeleteSelectedAdatszotar(List<int> idList)
{
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
string errorMsg = string.Empty;
var counter = 0;
foreach (var id in idList)
{
try
{
if (helper.IsProtected(id))
{
var adatszotarElem = helper.GetAdatszotarElem(id);
errorMsg += $"{adatszotarElem.Megnevezes}: {AdminisztracioResource.TorlesNemLehetsegesAzElemVedett}" + Environment.NewLine + Environment.NewLine;
continue;
}
helper.Delete(id);
counter++;
}
catch (EntityDeleteFailedException ex)
{
var adatszotarElem = helper.GetAdatszotarElem(id);
var uzenet = string.Format(ErrorResource.AdatszotarNemTorolhetoKapcsolatMiatt, ex.ConnectionErrorMessage);
errorMsg += $"{adatszotarElem.Megnevezes}: {uzenet}" + Environment.NewLine + Environment.NewLine;
continue;
}
catch (Exception e)
{
var adatszotarElem = helper.GetAdatszotarElem(id);
errorMsg += $"{adatszotarElem.Megnevezes}: {ErrorResource.AzElemNemTorolhetoMertEgyVagyTobbKapcsolodasaVan}" + Environment.NewLine + Environment.NewLine;
continue;
}
}
if (string.IsNullOrWhiteSpace(errorMsg))
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
if (counter > 0)
{
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
}
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
}
#region Helpers
private AdatszotarCO Convert_Model_to_CO(AdatszotarGridModel model)
{
AdatszotarCO co = new AdatszotarCO
{
ID = model.AdatszotarID,
AdatszotarTipus = model.AdatszotarTipusNev,
AdatszotarTipusId = model.AdatszotarTipusId,
Lathato = model.IsLathato,
Megnevezes = model.Megnevezes,
Sorszam = model.Sorszam,
Megnevezes1 = model.Megnevezes1,
Megnevezes2 = model.Megnevezes2,
Megnevezes3 = model.Megnevezes3,
Megnevezes4 = model.Megnevezes4,
Color = model.Color != null ? model.Color.Replace("#", "") : "",
IsBold = model.IsBold,
Suly = model.Suly,
Protected = model.IsProtected,
IsSorszamozando = model.IsSorszamozando,
IsTanorai = model.IsTanorai,
IsTanorankivuli = model.IsTanorankivuli,
IsLeNemKotottMunkaido = model.IsLeNemKotottMunkaido,
};
return co;
}
private AdatszotarGridModel Convert_CO_to_Model(AdatszotarCO co)
{
AdatszotarGridModel model = new AdatszotarGridModel()
{
ID = string.Empty,
AdatszotarTipusNev = co.AdatszotarTipus,
AdatszotarTipusId = co.AdatszotarTipusId,
AdatszotarID = co.ID,
IsLathato = co.Lathato ?? false,
Megnevezes = co.Megnevezes,
Sorszam = co.Sorszam,
Megnevezes1 = co.Megnevezes1,
Megnevezes2 = co.Megnevezes2,
Megnevezes3 = co.Megnevezes3,
Megnevezes4 = co.Megnevezes4,
Color = "#" + co.Color != null ? co.Color : "000000",
IsBold = co.IsBold,
Suly = co.Suly,
IsProtected = co.Protected,
IsSorszamozando = co.IsSorszamozando,
IsTanorai = co.IsTanorai,
IsTanorankivuli = co.IsTanorankivuli,
IsLeNemKotottMunkaido = co.IsLeNemKotottMunkaido,
};
return model;
}
public AdatszotarGridModel GetAdatszotarElem(int id)
{
return new AdatszotarGridModel(new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAdatszotarElem(id));
}
private bool GroupModifyItemActivity(ItemListModel parameters, bool active)
{
var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var adatszotarIds = new List<int>();
foreach (var item in parameters.Items)
{
adatszotarIds.Add(item.Id);
}
bool success = helper.ModifyItemActivity(adatszotarIds, active);
return success;
}
private DataSet FormatDataset(DataSet ds)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
if (ds.Tables[0].Columns[j].ColumnName == "Lathato")
ds.Tables[0].Rows[i]["Lathato"] = SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[i]["Lathato"], false);
if (ds.Tables[0].Columns[j].ColumnName == "Protected")
ds.Tables[0].Rows[i]["Protected"] = SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[i]["Protected"], false);
}
}
return ds;
}
public class ItemListModel
{
public List<ItemModel> Items { set; get; }
}
public class ItemModel
{
public int Id { set; get; }
}
public class OrderItemListModel
{
public List<OrderItemModel> Items { set; get; }
}
public class OrderItemModel
{
public int Id { set; get; }
public int Sorszam { set; get; }
}
#endregion
public JsonResult<List<ComboBoxListItem>> GetAdatszotarTipusList()
{
var tipusok = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEditableAdatszotarTipusok().OrderBy(x => x.megnevezes).ToList();
var dropdownListItems = new List<ComboBoxListItem>();
foreach ((int id, string megnevezes) in tipusok)
{
var sli = new ComboBoxListItem() { Text = megnevezes, Value = id.ToString() };
dropdownListItems.Add(sli);
}
return Json(dropdownListItems);
}
public HttpResponseMessage ChangeSelectedAdatszotarToLathato(List<int> idList)
{
AdatszotarHelper helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var id in idList)
{
var co = helper.GetAdatszotarElem(Convert.ToInt32(id));
co.Lathato = true;
helper.Update(co, ClaimData.KovTanevID);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
public HttpResponseMessage ChangeSelectedAdatszotarToRejtett(List<int> idList)
{
AdatszotarHelper helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var id in idList)
{
var co = helper.GetAdatszotarElem(Convert.ToInt32(id));
co.Lathato = false;
helper.Update(co, ClaimData.KovTanevID);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
}

View file

@ -0,0 +1,77 @@
using System.Collections.Generic;
using System.Data;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AktivTanevValtasaApiController : ApiController
{
public AktivTanevValtasaModel GetAktivTanevValtasaModel()
{
DataSet ds;
DataSet dsAlkalmazottak;
var helper = new AdminHelper(!ClaimData.SelectedTanevID.HasValue ? ConnectionTypeExtensions.GetActiveSessionConnectionType() : ConnectionTypeExtensions.GetSessionConnectionType());
ds = helper.GetAktivTanevValtasaModel(ClaimData.KovTanevID.Value);
dsAlkalmazottak = helper.GetAlkalmazottakAlapErtekekkel(ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny);
return ConvertDataSetToModel(ds, dsAlkalmazottak);
}
public DataSourceResult GetAlkalmazottTorlesGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var thelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetNextSessionConnectionType());
thelper.GridParameters = Converter.GridParameter(request);
var termek = thelper.TanevValtasAlkalmazottTorlesKereses();
return termek.ToDataSourceResult();
}
#region Helpers
public AktivTanevValtasaModel ConvertDataSetToModel(DataSet ds, DataSet dsAlkalmazottak)
{
var model = new AktivTanevValtasaModel();
if (ds.Tables[0].Rows.Count > 0)
{
DataRow dr = ds.Tables[0].Rows[0];
model.KiNemSoroltTanulokOsztaly = SDAConvert.ToInt32(dr["KiNemSoroltTanulokOsztaly"]);
model.KiNemSoroltTanulokCsoport = SDAConvert.ToInt32(dr["KiNemSoroltTanulokCsoport"]);
model.BeNemSoroltNebulok = SDAConvert.ToInt32(dr["BeNemSoroltNebulok"]);
model.VanTorlendoAlkalmazott = SDAConvert.ToInt32(dr["VanTorlendoAlkalmazott"]);
model.NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok = SDAConvert.ToInt32(dr["NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok"]);
}
model.AlkalmazottakAlapertekekkel = new List<string>();
if (dsAlkalmazottak != null && dsAlkalmazottak.Tables != null && dsAlkalmazottak.Tables.Count > 0 && dsAlkalmazottak.Tables[0].Rows.Count > 0)
{
foreach (DataRow item in dsAlkalmazottak.Tables[0].Rows)
{
model.AlkalmazottakAlapertekekkel.Add(SDAConvert.ToString(item["AlkalmazottNev"]));
}
}
LicenceTipusaEnum licence = LicenceHelper.LicenceLejaratAllapota(ClaimData.LicenceDatum);
if (licence == LicenceTipusaEnum.NegyedEveLejart || licence == LicenceTipusaEnum.EgyEveLejart)
model.LejartLicence = true;
else
model.LejartLicence = false;
return model;
}
#endregion
}
}

View file

@ -0,0 +1,77 @@
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.DiakolimpiaKezelo.ClaimValue)]
public class DiakolimpiaApiController : ApiController
{
public DataSourceResult GetDiakolimpiaGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
//Az oktatási azonosító maszkolása miatt kell kivenni
data = data.Replace("_", "");
var model = JsonConvert.DeserializeObject<DiakolimpiaSearchModel>(data);
var helper = new DiakolimpiaHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var ds = helper.GetDiakolimpiaGrid(ConvertSearchModelToCo(model));
return ds.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SendData(DataForMdszModel model)
{
if (ModelState.IsValid)
{
var message = string.Empty;
try
{
var sorszam = new DiakolimpiaHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladhelySorszambyId(model.FeladhelySorszam.Value);
message = new DiakolimpiaHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetDataForMdszInterface(model.Tanulok, sorszam);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
}
return Request.CreateResponse(HttpStatusCode.OK, message);
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran);
}
private DiakolimpiaSearchCO ConvertSearchModelToCo(DiakolimpiaSearchModel model)
{
return new DiakolimpiaSearchCO
{
SearchNev = model.SearchNev,
SearchSzuletesiDatumtol = model.SearchSzuletesiDatumtol,
SearchSzuletesiDatumig = model.SearchSzuletesiDatumig,
SearchAnyjaNeve = model.SearchAnyjaNeve,
SearchOktatasiAzonosito = model.SearchOktatasiAzonosito,
SearchOsztalya = model.SearchOsztalya
};
}
}
}

View file

@ -0,0 +1,72 @@
using System;
using System.Web.Http;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.Elearning.Nexius;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
using Nexius.Common.Helpers;
using Nexius.Common.Lti;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
public class ELearningApiController : ApiController
{
private readonly INexiusCourseService nexiusCourseService;
public ELearningApiController(INexiusCourseService nexiusCourseService)
{
this.nexiusCourseService = nexiusCourseService;
}
[HttpGet]
public IHttpActionResult StartCourse(string launchUri)
{
var felhasznaloId = string.Empty;
var vezeteknev = ClaimData.Vezeteknev;
var utonev = ClaimData.Utonev;
var nexiusId = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetNexiusId();
FelhasznaloHelper helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
if (ClaimData.GondviseloId.HasValue)
{
var (EgyediAzonosito, Nev) = helper.GetGondviseloAdat(ClaimData.GondviseloId.Value);
felhasznaloId = EgyediAzonosito;
vezeteknev = Nev;
utonev = " ";
}
else
{
felhasznaloId = helper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId);
}
Uri requestUrl = Request.RequestUri;
string returnUrl = $"{requestUrl.Scheme}://{requestUrl.Host}/Adminisztracio/ELearning";
var isGondviselo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId != null;
var isTanulo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId == null;
(string szuletesiNev, string oktatasiAzonosito, string emailCim) = helper.GetUserDetailsForElearning(ClaimData.FelhasznaloId, ClaimData.GondviseloId, isGondviselo, isTanulo);
var ltiRequest = new LtiLauchRequest()
{
UserId = felhasznaloId,
FamilyName = vezeteknev,
GivenName = utonev,
MothersName = isGondviselo ? string.Empty : ClaimData.AnyjaNeve,
BirthName = isGondviselo ? string.Empty : szuletesiNev,
BirthPlace = isGondviselo ? string.Empty : ClaimData.SzuletesiHely,
BirthDay = string.IsNullOrWhiteSpace(ClaimData.SzuletesiDatum) || isGondviselo ? (DateTime?)null : DateTime.Parse(ClaimData.SzuletesiDatum),
EducationalId = isGondviselo ? string.Empty : oktatasiAzonosito,
PrimaryEmail = emailCim,
ReturnUrl = returnUrl,
RegistrarId = string.IsNullOrWhiteSpace(nexiusId) ? (ShortGuid?)null : Guid.Parse(nexiusId) // implicitly cast the guid as a shortguid
};
string url = nexiusCourseService.GenerateLaunchUri(launchUri, ltiRequest);
return Redirect(url);
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using System.IO;
using System.Net;
using System.Security.Cryptography;
using System.Web.Http;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.Logic;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[AllowAnonymous]
public class EmailKezelesApiController : ApiController
{
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult Leiratkozas([FromBody] string data)
{
try
{
Guid guid = Guid.Parse(UrlLogic.Decrypt(data, Core.Constants.EncryptionKey));
if (!new UzenetekHelper(ConnectionTypeExtensions.GetOrganizationConnectionType()).Leiratkozas(guid))
{
throw new InvalidDataException();
}
}
catch (Exception ex) when (
ex is ArgumentException ||
ex is CryptographicException ||
ex is FormatException ||
ex is InvalidDataException)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ErvenytelenAdat);
}
catch (Exception)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.IsmeretlenHibaTortent);
}
return Ok();
}
}
}

View file

@ -0,0 +1,57 @@
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Client.CoreApi;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.IsFeltarAlkalmazott.ClaimValue)]
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
public class FeltarAlkalmazottApiController : ApiController
{
private readonly IFileServiceHelper fileServiceHelper;
private readonly ICoreApiClient coreApiClient;
public FeltarAlkalmazottApiController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
}
[HttpGet]
public bool IsEszkozIgenyelheto()
{
return new FeltarAlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsEszkozIgenyelheto(ClaimData.FelhasznaloId);
}
[HttpPost]
public HttpResponseMessage EszkozIgenyles(FeltarAlkalmazottCo feltarAlkalmazott)
{
try
{
if (feltarAlkalmazott.AdatvedelmiTajekoztatoElfogadasa && feltarAlkalmazott.AltalanosSzerzodesiFeltetelekElfogadasa && IsEszkozIgenyelheto())
{
new FeltarAlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).EszkozIgenyles(ClaimData.FelhasznaloId);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
}
}
}

View file

@ -0,0 +1,56 @@
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Client.CoreApi;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.IsFeltarGondviselo.ClaimValue)]
public class FeltarGondviseloApiController : ApiController
{
private readonly IFileServiceHelper fileServiceHelper;
private readonly ICoreApiClient coreApiClient;
public FeltarGondviseloApiController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
}
[HttpGet]
public bool IsEszkozIgenyelheto()
{
return new FeltarGondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsEszkozIgenyelheto(ClaimData.FelhasznaloId);
}
[HttpPost]
public HttpResponseMessage EszkozIgenyles(FeltarGondviseloCo feltarGondviselo)
{
try
{
if (feltarGondviselo.AdatvedelmiTajekoztatoElfogadasa && feltarGondviselo.AltalanosSzerzodesiFeltetelekElfogadasa && IsEszkozIgenyelheto())
{
new FeltarGondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).EszkozIgenyles(ClaimData.FelhasznaloId, ClaimData.GondviseloId.Value);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
}
}
}

View file

@ -0,0 +1,84 @@
using System.Collections.Generic;
using System.Web.Http;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes.ComboBox;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Utils;
using Kreta.Enums;
using Kreta.Framework.Util;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[AllowAnonymous]
[ApiCsokkentettGondviseloAccess]
public class GondviseloJelszoIgenyloApiController : ApiController
{
public JsonResult<List<ComboBoxListItem>> GetKozteruletJellegList([DataSourceRequest] DataSourceRequest request)
{
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.KozteruletJelleg).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList();
return Json(items);
}
public JsonResult<List<TelepulesListCO>> GetHelysegNevList([DataSourceRequest] DataSourceRequest request)
{
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
helper.GridParameters = null;
var helperResult = helper.GetTelepulesek();
return Json(helperResult);
}
public JsonResult<List<IranyitoszamListCO>> GetIranyitoszamList([DataSourceRequest] DataSourceRequest request, string serverFilter = "")
{
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
helper.GridParameters = null;
var dictionary = helper.GetIranyitoszamok(serverFilter);
return Json(dictionary);
}
public JsonResult<List<ComboBoxListItem>> GetOrszagList([DataSourceRequest] DataSourceRequest request)
{
return Json(((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList());
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public JsonResult<List<TelepulesListCO>> GetHelysegNevByIranyitoszamList(string iranyitoSzam)
{
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
helper.GridParameters = null;
var helperResult = helper.GetTelepulesek(iranyitoSzam);
return Json(helperResult);
}
public JsonResult<List<ComboBoxListItem>> GetRokonsagiFokList([DataSourceRequest] DataSourceRequest request)
{
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.RokonsagiFok).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList(new List<int> { (int)RokonsagiFokEnum.egyeb_nem_rokoni_kapcsolat, (int)RokonsagiFokEnum.egyeb_rokoni_kapcsolat });
return Json(items);
}
public JsonResult<List<ComboBoxListItem>> GetEmailTipusList([DataSourceRequest] DataSourceRequest request)
{
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.EmailTipus).GetItemsByType(CommonUtils.GetAktualisTanevId(ClaimData.FelhasznaloId), true).ToComboBoxItemList(new List<int> { (int)EmailTipusEnum.PublikusEmailcim });
return Json(items);
}
public JsonResult<List<IranyitoszamTelepulesListCO>> GetIranyitoszamokEsTelepulesek([DataSourceRequest] DataSourceRequest request)
{
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetOrganizationConnectionType());
var list = helper.GetIranyitoszamokEsTelepulesek();
return Json(list);
}
}
}

View file

@ -0,0 +1,403 @@
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class HelyettesitesekKezeleseApiController : ApiController
{
public HelyettesitesBevitelModel GetHelyettesitesBevitelData(int helyettesitesId)
{
var dataSet = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitesDataById(helyettesitesId);
DataRow row = dataSet.Tables[0].Rows[0];
var model = new HelyettesitesBevitelModel
{
HelyettesitesBevitelHelyettesitesId = helyettesitesId,
HelyettesitesBevitelGroupId = SDAConvert.ToNullableInt32(row["C_GROUPID"].ToString()),
HelyettesitesBevitelTanarId = int.Parse(row["C_HELYETTESTANAROKID"].ToString()),
HelyettesitesBevitelTanarNev = row["C_NYOMTATASINEV"].ToString(),
HelyettesitesBevitelHelyettesitesTipusId = int.Parse(row["C_HELYETTESITESTIPUS"].ToString()),
HelyettesitesBevitelHelyettesitesOka = row["C_HELYETTESITESOKA"].ToString()
};
return model;
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage InsertHelyettesites(HelyettesitesBevitelModel model)
{
if (ModelState.IsValid && model.HelyettesitesBevitelTanarId.HasValue)
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var helper = new HelyettesitesHelper(connectionType);
var hetHelper = new NaptariHetHelper(connectionType);
var uzenetekHelper = new UzenetekHelper(connectionType);
var orarendHelper = new OrarendHelper(connectionType);
var sorszam = hetHelper.GetNaptariHetSorszamByDate(model.HelyettesitesBevitelOraKezdeteDate.Date);
if (model.HelyettesitesBevitelCalendarOraType == CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
{
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.NaplozottOrahozNemVehetoFelHelyettesites);
}
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitesBevitelTanarId.Value);
if (model.HelyettesitesBevitelHelyettesitesGyakorisagTipus == (int)HelyettesitesGyakorisagTipusEnum.Egyedi)
{
HelyettesitesResultCO helyettesitesResultCo = helper.SaveHelyettesites(
model.HelyettesitesBevitelCalendarEventId,
model.HelyettesitesBevitelTanarId.Value,
model.HelyettesitesBevitelHelyettesitesTipusId,
model.HelyettesitesBevitelHelyettesitesOka,
sorszam,
model.HelyettesitesBevitelOraKezdeteDate.Date,
model.IsTuloraMentes);
if (helyettesitesResultCo.ErrorId.IsEntityId())
{
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCo.ErrorId.Value));
}
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
{
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
uzenetekHelper.SendEmail(sendEmailCo);
}
}
else
{
List<HelyettesitesResultCO> helyettesitesResultCoList = helper.SaveGroupHelyettesites(
model.HelyettesitesBevitelCalendarEventId,
model.HelyettesitesBevitelTanarId.Value,
model.HelyettesitesBevitelHelyettesitesTipusId,
model.HelyettesitesBevitelHelyettesitesOka,
sorszam,
model.HelyettesitesBevitelOraKezdeteDate.Date,
model.HelyettesitesBevitelTartosHelyettesitesVegeDate.Value,
model.IsTuloraMentes);
if (helyettesitesResultCoList.Count == 1 && helyettesitesResultCoList[0].ErrorId.IsEntityId())
{
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCoList[0].ErrorId.Value));
}
foreach (var helyettesitesResultCo in helyettesitesResultCoList)
{
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
{
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
uzenetekHelper.SendEmail(sendEmailCo);
}
}
}
orarendHelper.GenerateTeljesOrarend();
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage UpdateSingleHelyettesites(HelyettesitesBevitelModel model)
{
if (ModelState.IsValid && model.HelyettesitesBevitelHelyettesitesId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var helper = new HelyettesitesHelper(connectionType);
var uzenetekHelper = new UzenetekHelper(connectionType);
var orarendHelper = new OrarendHelper(connectionType);
var originalHelyettesito = helper.GetHelyettesitesEmailDataById(model.HelyettesitesBevitelHelyettesitesId.Value);
if (originalHelyettesito.HelyettesitoID != model.HelyettesitesBevitelTanarId.Value)
{
bool originalMustSendEmail = helper.GetUserHelyettesitesProfilData(originalHelyettesito.HelyettesitoID);
if (originalMustSendEmail)
{
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesTorlesSendEmailCo(model.HelyettesitesBevitelHelyettesitesId.Value);
uzenetekHelper.SendEmail(sendEmailCo);
}
}
HelyettesitesResultCO helyettesitesResultCo = helper.UpdateHelyettesitoTanar(
model.HelyettesitesBevitelCalendarEventId,
model.HelyettesitesBevitelHelyettesitesId.Value,
model.HelyettesitesBevitelTanarId.Value,
model.HelyettesitesBevitelHelyettesitesTipusId,
model.HelyettesitesBevitelHelyettesitesOka,
model.HelyettesitesBevitelOraKezdeteDate.Date,
null,
model.IsTuloraMentes);
if (helyettesitesResultCo.ErrorId.IsEntityId())
{
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(helyettesitesResultCo.ErrorId.Value));
}
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitesBevitelTanarId.Value);
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
{
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(model.HelyettesitesBevitelHelyettesitesId.Value);
uzenetekHelper.SendEmail(sendEmailCo);
}
orarendHelper.GenerateTeljesOrarend(model.HelyettesitesBevitelCalendarEventId);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage UpdateGroupHelyettesites(HelyettesitesBevitelModel model)
{
if (ModelState.IsValid && model.HelyettesitesBevitelHelyettesitesId.HasValue && model.HelyettesitesBevitelGroupId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
{
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var uzenetekHelper = new UzenetekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var helyettesitesDataSet = helper.GetHelyettesitesDataSetByGroupId(model.HelyettesitesBevitelGroupId.Value);
var helyettesitesResultCoList = new List<HelyettesitesResultCO>();
foreach (DataRow dataRow in helyettesitesDataSet.Tables[0].Rows)
{
var helyettesitesId = SDAConvert.ToInt32(dataRow["Id"]);
var helyettesitesNapjaDate = SDAConvert.ToDateTime(dataRow["HelyettesitesNapjaDate"]);
if (model.HelyettesitesBevitelOraKezdeteDate.Date <= helyettesitesNapjaDate)
{
var originalHelyettesito = helper.GetHelyettesitesEmailDataById(helyettesitesId);
if (originalHelyettesito.HelyettesitoID != model.HelyettesitesBevitelTanarId.Value)
{
bool originalMustSendEmail = helper.GetUserHelyettesitesProfilData(originalHelyettesito.HelyettesitoID);
if (originalMustSendEmail)
{
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesTorlesSendEmailCo(model.HelyettesitesBevitelHelyettesitesId.Value);
uzenetekHelper.SendEmail(sendEmailCo);
}
}
helyettesitesResultCoList.Add(helper.UpdateHelyettesitoTanar(
model.HelyettesitesBevitelCalendarEventId,
helyettesitesId,
model.HelyettesitesBevitelTanarId.Value,
model.HelyettesitesBevitelHelyettesitesTipusId,
model.HelyettesitesBevitelHelyettesitesOka,
model.HelyettesitesBevitelOraKezdeteDate.Date,
model.HelyettesitesBevitelHelyettesitesId,
model.IsTuloraMentes));
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(model.HelyettesitesBevitelTanarId.Value);
foreach (var helyettesitesResultCo in helyettesitesResultCoList)
{
if (helyettesitesResultCo.HelyettesitesId.IsEntityId() && mustSendEmail)
{
SendEmailCo sendEmailCo = uzenetekHelper.GetHelyettesitesSendEmailCo(helyettesitesResultCo.HelyettesitesId.Value);
uzenetekHelper.SendEmail(sendEmailCo);
}
}
}
else
{
helper.ClearHelyettesitesGroupId(helyettesitesId);
}
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult ValidateDeleteHelyettesites(HelyettesitesBevitelModel model)
{
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
List<string> textList = helper.GetNemkotottMunkaidoByHelyettesitesHibakListaja(model.HelyettesitesBevitelHelyettesitesId, model.HelyettesitesBevitelGroupId, model.HelyettesitesBevitelOraKezdeteDate);
textList.Add(CommonResource.BiztosanTorli);
string result = string.Join("<br />", textList);
return Json(new { Text = result });
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteSingleHelyettesites(HelyettesitesBevitelModel model)
{
if (ModelState.IsValid && model.HelyettesitesBevitelHelyettesitesId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var helper = new HelyettesitesHelper(connectionType);
var orarendHelper = new OrarendHelper(connectionType);
Dictionary<int, int> nemKotottMunkaidoDictionary = helper.GetNemkotottMunkaidoByHelyettesitesTorleshez(model.HelyettesitesBevitelHelyettesitesId, model.HelyettesitesBevitelGroupId, model.HelyettesitesBevitelOraKezdeteDate);
int? nemKotottmunkaidoId = nemKotottMunkaidoDictionary.Count > 0 && nemKotottMunkaidoDictionary.TryGetValue(model.HelyettesitesBevitelHelyettesitesId.Value, out int value) ? value : (int?)null;
Delete(helper, model.HelyettesitesBevitelHelyettesitesId.Value, model.HelyettesitesBevitelTanarId.Value, nemKotottmunkaidoId);
orarendHelper.GenerateTeljesOrarend();
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGroupHelyettesites(HelyettesitesBevitelModel model)
{
if (ModelState.IsValid && model.HelyettesitesBevitelGroupId.HasValue && model.HelyettesitesBevitelTanarId.HasValue)
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var helper = new HelyettesitesHelper(connectionType);
var orarendHelper = new OrarendHelper(connectionType);
Dictionary<int, int> nemKotottMunkaidoDictionary = helper.GetNemkotottMunkaidoByHelyettesitesTorleshez(model.HelyettesitesBevitelHelyettesitesId, model.HelyettesitesBevitelGroupId, model.HelyettesitesBevitelOraKezdeteDate);
var helyettesitesDataSet = helper.GetHelyettesitesDataSetByGroupId(model.HelyettesitesBevitelGroupId.Value);
foreach (DataRow dataRow in helyettesitesDataSet.Tables[0].Rows)
{
var helyettesitesId = SDAConvert.ToInt32(dataRow["Id"]);
var helyettesitesNapjaDate = SDAConvert.ToDateTime(dataRow["HelyettesitesNapjaDate"]);
if (model.HelyettesitesBevitelOraKezdeteDate.Date <= helyettesitesNapjaDate)
{
int? nemKotottmunkaidoId = nemKotottMunkaidoDictionary.Count > 0 && nemKotottMunkaidoDictionary.TryGetValue(helyettesitesId, out int value) ? value : (int?)null;
Delete(helper, helyettesitesId, model.HelyettesitesBevitelTanarId.Value, nemKotottmunkaidoId);
}
else
{
helper.ClearHelyettesitesGroupId(helyettesitesId);
}
}
orarendHelper.GenerateTeljesOrarend();
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
private void Delete(HelyettesitesHelper helper, int helyettesitesId, int tanarId, int? nemKotottMunkaidoId = null)
{
bool mustSendEmail = helper.GetUserHelyettesitesProfilData(tanarId);
var uzenetekHelper = new UzenetekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
SendEmailCo sendEmailCo = mustSendEmail ? uzenetekHelper.GetHelyettesitesTorlesSendEmailCo(helyettesitesId) : null;
helper.DeleteHelyettesites(helyettesitesId);
orarendHelper.GenerateTeljesOrarend();
var nemkotottmunkaidoHelper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (nemKotottMunkaidoId.IsEntityId())
nemkotottmunkaidoHelper.Delete(nemKotottMunkaidoId.Value, isAdmin: true);
if (mustSendEmail)
{
uzenetekHelper.SendEmail(sendEmailCo);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveNemMegtartottHelyettesites(NemMegtartottHelyettesitesBevitelModel model)
{
try
{
new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveAdminNemMegtartottOra(
model.HelyettesitesBevitelCalendarEventId.Value,
model.HelyettesitesBevitelOraKezdeteDate.Value,
model.HelyettesitesBevitelOraVegeDate.Value,
model.HelyettesitesBevitelHelyettesitesOka);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage NemMegtartottOraTorlese(NemMegtartottHelyettesitesBevitelModel model)
{
try
{
var helper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
TanoraCO tanoraCo = helper.GetTanorakAdatok(model.HelyettesitesBevitelCalendarEventId.Value);
if (!tanoraCo.AdminAltalKiirt)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
helper.NaplozasTorlese(model.HelyettesitesBevitelCalendarEventId.Value, true);
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
orarendiOraHelper.OrarendValtozasCacheMentes(tanoraCo.OrarendiOra, tanoraCo.OraKezd);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e };
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
public bool GetHelyettesitoEmailCim(int userId)
{
string emailCim = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitoTanarEmailCim(userId);
return !string.IsNullOrWhiteSpace(emailCim);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveOracsere(OracsereModel model)
{
OracsereValidationCO oracsereValidacio;
try
{
oracsereValidacio = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveOracsere(model.OracsereOrarendiOraId, model.OracsereOrarendiOraDatum, model.CalendarOrarendiOraId, model.CalendarOrarendiOraDatum, ClaimData.FelhasznaloId, model.IsPrevalidation, model.IsTeremcsere);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
if (!model.IsPrevalidation)
{
oracsereValidacio.WarningMessage = string.Empty;
}
return Request.CreateResponse(HttpStatusCode.OK, oracsereValidacio, Configuration.Formatters.JsonFormatter);
}
}
}

View file

@ -0,0 +1,156 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class HelyettesitesekListajaApiController : ApiController
{
[HttpPost]
public DataSourceResult GetHelyettesitesekListajaGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(request.data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<HelyettesitesekListajaGridModel>(HelyettesitesekListajaGridModel.HelyettesitesekListajaExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(HelyettesitesekListajaResource.HelyettesitesekListajaExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), HelyettesitesekListajaResource.HelyettesitesekListajaExportFilename);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<HelyettesitesekListajaGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<HelyettesitesekListajaSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitesekListajaCoList(model.ConvertToCO());
var modelList = new List<HelyettesitesekListajaGridModel>();
foreach (var co in coList)
{
var gridModel = new HelyettesitesekListajaGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteHelyettesitesek(List<int> id)
{
if (!(id?.Count > 0))
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NincsTorlesreJeloltHelyettesites);
}
string errorMsg = string.Empty;
var counter = 0;
var errorCounter = 0;
var helper = new HelyettesitesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var helyettesitesekListaja = helper.GetHelyettesitesekListajaGrid(new BusinessLogic.HelperClasses.HelyettesitesekListajaSearchCO());
if (helyettesitesekListaja.Tables[0] != null && helyettesitesekListaja.Tables[0].Rows.Count > 0)
{
var helyettesitesekListajas = helyettesitesekListaja.Tables[0]
.AsEnumerable()
.Where(row => row.Field<string>("Naplozott") == "F")
.Select(row => row.Field<int>("ID"));
if (id.Count == 1)
{
int helyettesitesId = id[0];
if (helyettesitesekListajas.Any(row => row == helyettesitesId))
{
helper.DeleteHelyettesites(helyettesitesId);
orarendHelper.GenerateTeljesOrarend();
return new HttpResponseMessage(HttpStatusCode.OK);
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ATorlesSikertelenMertAHelyettesitesNaplozott);
}
else
{
foreach (var item in id)
{
if (helyettesitesekListajas.Any(row => row == item))
{
helper.DeleteHelyettesites(item);
counter++;
}
else
{
errorCounter++;
}
}
}
orarendHelper.GenerateTeljesOrarend();
if (errorCounter == 0)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorleseSikertelenMertAHelyettesitesekNaplozottak, errorCounter);
if (counter > 0)
{
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
}
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
}
}
else
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaATorlesSoran);
}
}
}
}

View file

@ -0,0 +1,86 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class NevOktLeNemKotottMunkaidoListajaApiController : ApiController
{
[HttpPost]
public DataSourceResult GetNevOktLeNemKotottMunkaidoGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(request.data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<NevOktLeNemKotottMunkaidoGridModel>(NevOktLeNemKotottMunkaidoGridModel.NevOktLeNemKotottMunkaidoExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(NevOktLeNemKotottMunkaidoResource.NevOktLeNemKotottMunkaido, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), NevOktLeNemKotottMunkaidoResource.ExportFileName);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<NevOktLeNemKotottMunkaidoGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<NevOktLeNemKotottMunkaidoSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNevOktLeNemKotottMunkaidoItemCoList(model.ConvertToCo());
var modelList = new List<NevOktLeNemKotottMunkaidoGridModel>();
foreach (var co in coList)
{
var gridModel = new NevOktLeNemKotottMunkaidoGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public bool DeleteNemKotott(int nemKotottId)
{
var helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.Delete(nemKotottId, isAdmin: true);
return true;
}
}
}

View file

@ -0,0 +1,676 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Client.KGR;
using Kreta.Client.KGR.Request;
using Kreta.Core;
using Kreta.Core.FeatureToggle;
using Kreta.Core.Logic;
using Kreta.Framework;
using Kreta.Framework.Security;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Kreta.Web.Utils;
using Newtonsoft.Json;
using static Kreta.Core.Constants;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public class ProfilApiController : ApiController
{
private readonly IKGRClient _kgrClient;
public ProfilApiController(IKGRClient kgrClient)
{
_kgrClient = kgrClient ?? throw new ArgumentNullException(nameof(kgrClient));
}
/// <summary>
/// Jelszó módosítás mentés
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveProfilData(ProfilModel model)
{
if (ModelState.IsValid)
{
try
{
var belepesiNev = ClaimData.BelepesiNev;
var helper = new FelhasznaloBelepesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var loginInfo = helper.AuthenticateUser(belepesiNev, model.JelenlegiJelszo);
if (loginInfo == null || loginInfo.PasswordState == PasswordState.INVALID)
{
throw new IncorrectPasswordException(loginInfo.BelepesiNev);
}
helper.ChangeUserPassword(belepesiNev, model.UjJelszo);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (IncorrectPasswordException)
{
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(2591)/*Helytelen jelenlegi jelszó!*/);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.InternalServerError, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/)
{
UnHandledException = ex
};
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
/// <summary>
/// Elérhetőség módosítás mentés
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegek(ElerhetosegekModel model)
{
model.CleanFromEmptyRows();
if (!ValidateElerhetosegek(model, out var errorDictionary))
{
ModelState.AddRange(errorDictionary);
}
if (ModelState.IsValid)
{
try
{
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var co = model.ConvertToCo();
var newDbElerhetosegek = felhasznaloHelper.SaveElerhetosegek(co, ClaimData.FelhasznaloId);
return Request.CreateResponse(HttpStatusCode.OK, newDbElerhetosegek);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.InternalServerError, ErrorResource.NemSikerultAMuvelet)
{
UnHandledException = ex
};
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
/// <summary>
/// Profilkép mentés
/// </summary>
/// <returns></returns>
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveProfilePicture()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new StatusError(HttpStatusCode.UnsupportedMediaType, StringResourcesUtil.GetString(4890)/*Nem támogatott tipus*/);
}
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
var tempFilePath = provider.FileData[0].LocalFileName;
var byteArray = File.ReadAllBytes(tempFilePath);
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
ProfileUtils.UserProfileImage = helper.ProfileKep(helper.ProfilkepMentese(byteArray));
File.Delete(tempFilePath);
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviseloAdatok(GondviseloAdatokModModel model)
{
try
{
new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveGondviseloElerhetosegAdatok(ConvertGondviseloAdatokModModelToCO(model));
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviselo4TAdatok(Felhasznalo4TAdatokModel model)
{
if (!ClaimData.FeltarGondviseloEnabled)
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
}
try
{
new GondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveGondviselo4TAdatok(ClaimData.GondviseloId.Value, ConvertGondviselo4TAdatokModelToCo(model));
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
}
[HttpPost]
public HttpResponseMessage DeleteGondviseloEmail()
{
try
{
new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteGondviseloEmail(ClaimData.GondviseloId.Value);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanuloBankszamlaAdatok(TanuloBankszamlaModel model) => SaveBankszamlaAdatok(model, true);
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveAlkalmazottBankszamlaAdatok(AlkalmazottBankszamlaModel model) => SaveBankszamlaAdatok(model, false);
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveMentoriNyugdijAdatok(MentoriNyugdijModel model)
{
if (ModelState.IsValid)
{
try
{
var co = model.ConvertToCo();
var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext));
var isKlebelsbergKozpontOrNSZFH =
featureContext.IsEnabled(FeatureName.MunkaugyiAdatokKlebelsberg)
|| featureContext.IsEnabled(FeatureName.MunkaugyiAdatokNSZFH);
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveAlkalmazottNyugdijAdatok(co, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
var errorMessage = string.Join("<br>", ModelState.Select(x => string.Join("<br>", x.Value.Errors.Select(y => y.ErrorMessage))));
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
}
[NonAction]
public HttpResponseMessage SaveBankszamlaAdatok(TanuloBankszamlaModel model, bool isTanulo)
{
var co = model.ConvertToCo();
if (!ValidateBankszamlaszamAdatok(co, out var errorDictionary))
{
ModelState.AddRange(errorDictionary);
}
if (ModelState.IsValid)
{
try
{
if (isTanulo)
{
new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveTanuloBankszamlaAdatok(ClaimData.FelhasznaloId, ClaimData.GondviseloId, co);
}
else
{
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveAlkalmazottBankszamlaAdatok(ClaimData.FelhasznaloId, co);
}
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet) { UnHandledException = ex };
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
var errorMessage = string.Join("<br>", ModelState.Select(x => string.Join("<br>", x.Value.Errors.Select(y => y.ErrorMessage))));
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
public DataSourceResult GetTanuloAdatGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTanuloAdatForGondviselo(ClaimData.GondviseloId.Value);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public DataSourceResult GetElerhetosegCimGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
DataSet ds;
if (ClaimData.GondviseloId.HasValue)
{
ds = helper.GetCimData(ClaimData.GondviseloId.Value, isGondviselo: true);
}
else
{
ds = helper.GetCimData(ClaimData.FelhasznaloId, isGondviselo: false);
}
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public DataSourceResult GetElerhetosegTelGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
DataSet ds;
if (ClaimData.GondviseloId.HasValue)
{
ds = helper.GetTelefonData(ClaimData.GondviseloId.Value);
}
else
{
ds = helper.GetTelefonData(ClaimData.FelhasznaloId);
}
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public DataSourceResult GetElerhetosegEmailGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
DataSet ds;
if (ClaimData.GondviseloId.HasValue)
{
ds = helper.GetEmailData(ClaimData.GondviseloId.Value);
}
else
{
ds = helper.GetEmailData(ClaimData.FelhasznaloId);
}
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public DataSourceResult GetTargyiEszkozokGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var adatlapModels = new List<SajatAdatlapInfoModel.TargyiEszkozModel>();
try
{
var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var tanaradatok = helper.GetTanarAdatok(ClaimData.FelhasznaloId);
string funkcioTerulet = null;
if (tanaradatok.FeladatellatasiHely.IsEntityId())
{
var mukodesiHelyId = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladatEllatasiHelyAdatok(tanaradatok.FeladatellatasiHely.Value).MukodesiHelyID;
var co = new MukodesiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetMukodesiHelyAdatok(mukodesiHelyId);
funkcioTerulet = co.Funkcioterulet;
}
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
if (!string.IsNullOrWhiteSpace(alkalmazottHelper.GetAlkalmazottSztszKod(ClaimData.FelhasznaloId)))
{
var result = _kgrClient.KGREszkozList(new EszkozHeaderRequest() { IntezmenyGuid = ClaimData.IntezmenyGuid.ToString(), IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Sztsz = alkalmazottHelper.GetAlkalmazottSztszKod(ClaimData.FelhasznaloId) });
var cnt = 0;
foreach (var item in result)
{
adatlapModels.Add(new SajatAdatlapInfoModel.TargyiEszkozModel
{
ID = cnt.ToString(),
Megnevezes = item.Megnevezes,
GyariSzam = item.GyariSzam,
LeltariSzam = item.Leltarszam
});
cnt++;
}
}
}
catch (Exception ex)
{
SDAServer.Instance.Logger.ExceptionThrown(ex);
}
return adatlapModels.ToDataSourceResult();
}
private GondviseloAdatokModCO ConvertGondviseloAdatokModModelToCO(GondviseloAdatokModModel model)
{
return new GondviseloAdatokModCO
{
GondviseloId = ClaimData.GondviseloId.Value,
TanuloId = ClaimData.FelhasznaloId,
UjEmail = model.UjEmail,
UjTelefon = model.UjTelefon
};
}
private Felhasznalo4TAdatokCo ConvertGondviselo4TAdatokModelToCo(Felhasznalo4TAdatokModel model)
{
return new Felhasznalo4TAdatokCo
{
AnyjaUtonev = model.AnyjaUtonev,
AnyjaVezeteknev = model.AnyjaVezeteknev,
Elotag = model.Elotag,
SzuletesiDatum = model.SzuletesiDatum,
SzuletesiHely = model.SzuletesiHely,
SzuletesiUtonev = model.SzuletesiUtonev,
SzuletesiVezeteknev = model.SzuletesiVezeteknev,
Utonev = model.Utonev,
Vezeteknev = model.Vezeteknev,
};
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveEgyHaztartasbanElokData(EgyhaztartasbanElokModel model)
{
if (!ValidateEgyHaztartasbanElok(model, out var errorDictionary))
{
ModelState.AddRange(errorDictionary);
}
if (ModelState.IsValid)
{
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SaveEgyhaztartasbanElokData(model.ConvertToCo(), ClaimData.FelhasznaloId, ClaimData.GondviseloId);
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public string LoadEgyHaztartasbanElokData()
{
return JsonConvert.SerializeObject(new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyhaztartasbanElokData(ClaimData.FelhasznaloId));
}
#region Helpers
private bool ValidateElerhetosegek(ElerhetosegekModel model, out Dictionary<string, List<string>> errorDictionary)
{
errorDictionary = new Dictionary<string, List<string>>();
if (model.Email.Where(e => e.Alapertelmezett && e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Take(2).Count() != 1)
{
AddErrorMessage(errorDictionary, "Error", AdminisztracioResource.KotelezoEgyAlapertelmezettEmail);
}
if (model.Telefon.Where(t => t.Alapertelmezett && t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Take(2).Count() != 1)
{
AddErrorMessage(errorDictionary, "Error", AdminisztracioResource.KotelezoEgyAlapertelmezettTelefon);
}
var publikusEmailCimek = model.Email.Where(e => e.IsPublic && e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted);
if (publikusEmailCimek.Skip(1).Any())
{
foreach (var publikusEmail in publikusEmailCimek.Skip(1))
{
AddErrorMessage(errorDictionary, publikusEmail.TextBoxId, AdminisztracioResource.PublikusEmailCsakEgyLehet);
}
}
var publikusTelefonszamok = model.Telefon.Where(t => t.IsPublic && t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted);
if (publikusTelefonszamok.Skip(1).Any())
{
foreach (var publikusTelefonszam in publikusTelefonszamok.Skip(1))
{
AddErrorMessage(errorDictionary, publikusTelefonszam.TextBoxId, AdminisztracioResource.PublikusTelefonCsakEgyLehet);
}
}
foreach (var email in model.Email.Where(e => e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted))
{
if (!email.Tipus.HasValue)
{
AddErrorMessage(errorDictionary, email.ComboBoxId, AdminisztracioResource.EmailTipusKotelezo);
}
if (email.IsPublic && email.Alapertelmezett)
{
AddErrorMessage(errorDictionary, email.TextBoxId, AdminisztracioResource.PublikusEmailNemLehetAlapertelmezett);
}
if (string.IsNullOrWhiteSpace(email.EmailCim) || !email.EmailCim.IsValidEmail())
{
AddErrorMessage(errorDictionary, email.TextBoxId, ErrorResource.EMailCimFormatumaNemMegfelelo);
}
else
{
if (email.EmailCim.Length > General.EmailMaximumKarakterekSzama)
{
AddErrorMessage(errorDictionary, email.TextBoxId, ErrorResource.EmailMax0Karakter);
}
}
}
var nemToroltEmailek = model.Email.Where(x => x.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Select(x => x.EmailCim_Input).ToList();
if (nemToroltEmailek.Distinct().Count() != nemToroltEmailek.Count())
{
AddErrorMessage(errorDictionary, "Error", ErrorResource.AMegadottEmailcimMarRogzitveVan);
}
var nemToroltTelefonszamok = model.Telefon.Where(x => x.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).Select(x => x.Telefonszam).ToList();
if (nemToroltTelefonszamok.Distinct().Count() != nemToroltTelefonszamok.Count())
{
AddErrorMessage(errorDictionary, "Error", ErrorResource.AMegadottTelefonszamMarRogzitveVan);
}
foreach (var telefon in model.Telefon.Where(t => t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted))
{
if (!telefon.Tipus.HasValue)
{
AddErrorMessage(errorDictionary, telefon.ComboBoxId, AdminisztracioResource.TelefonTipusKotelezo);
}
if (telefon.IsPublic && telefon.Alapertelmezett)
{
AddErrorMessage(errorDictionary, telefon.TextBoxId, AdminisztracioResource.PublikusTelefonNemLehetAlapertelmezett);
}
if (string.IsNullOrWhiteSpace(telefon.Telefonszam) || !telefon.Telefonszam.IsValidPhone())
{
AddErrorMessage(errorDictionary, telefon.TextBoxId, ErrorResource.ATelefonszamFormatumaNemMegfelelo);
}
}
return !errorDictionary.Any();
}
private bool ValidateBankszamlaszamAdatok(BankszamlaCo model, out Dictionary<string, List<string>> errorDictionary)
{
errorDictionary = new Dictionary<string, List<string>>();
var errorText = BankszamlaLogic.KitoltottsegValidacio(model.BankszamlaSzam, model.BankszamlaTulajdonos, model.BankszamlaTulajdonosNeve);
if (!string.IsNullOrWhiteSpace(errorText))
{
AddErrorMessage(errorDictionary, nameof(model.BankszamlaSzam), errorText);
}
else
{
// NOTE: Üres a bankszámlaszám = törölni akarjuk a meglevő adatokat
if (string.IsNullOrWhiteSpace(model.BankszamlaSzam))
{
return true;
}
errorText = BankszamlaLogic.CDVValidacio(model.BankszamlaSzam);
if (!string.IsNullOrWhiteSpace(errorText))
{
AddErrorMessage(errorDictionary, nameof(model.BankszamlaSzam), errorText);
}
}
return !errorDictionary.Any();
}
private void AddErrorMessage(Dictionary<string, List<string>> errorDictionary, string key, string message)
{
if (!errorDictionary.TryGetValue(key, out var messages))
{
messages = new List<string>();
errorDictionary.Add(key, messages);
}
messages.Add(message);
}
private bool ValidateEgyHaztartasbanElok(EgyhaztartasbanElokModel model, out Dictionary<string, List<string>> errorDictionary)
{
errorDictionary = new Dictionary<string, List<string>>();
foreach (var item in model.Sorok.Where(t => !t.isDeleted))
{
if (string.IsNullOrWhiteSpace(item.Nev))
{
AddErrorMessage(errorDictionary, $"Nev_{item.RowNumber}", string.Format(FelhasznalokResource.NevKotelezo, item.RowNumber));
}
if (string.IsNullOrWhiteSpace(item.AnyjaNev))
{
AddErrorMessage(errorDictionary, $"AnyjaNev_{item.RowNumber}", string.Format(FelhasznalokResource.AnyjaNeveKotelezo, item.RowNumber));
}
if (string.IsNullOrWhiteSpace(item.SzuletesiHely))
{
AddErrorMessage(errorDictionary, $"SzuletesiHely_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiHelyKotelezo, item.RowNumber));
}
if (!item.SzuletesiIdo.HasValue)
{
AddErrorMessage(errorDictionary, $"SzuletesiIdo_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiIdoKotelezo, item.RowNumber));
}
if (item.SzuletesiIdo.HasValue && (item.SzuletesiIdo < DateTime.Today.AddYears(-150) || item.SzuletesiIdo > DateTime.Today))
{
AddErrorMessage(errorDictionary, $"SzuletesiIdo_{item.RowNumber}", string.Format(FelhasznalokResource.SzuletesiIdoNemValid, item.RowNumber));
}
if (!item.RokonsagiFok.HasValue)
{
AddErrorMessage(errorDictionary, $"RokonsagiFok_{item.RowNumber}", string.Format(FelhasznalokResource.RokonsagiFokKotelezo, item.RowNumber));
}
if (string.IsNullOrWhiteSpace(item.Taj))
{
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamKotelezo, item.RowNumber));
}
else
{
if (item.Taj.Length != 9)
{
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszam9Karakter, item.RowNumber));
}
else if (string.Equals(item.Taj, "000000000", StringComparison.Ordinal))
{
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamCsupaNulla, item.RowNumber));
}
else
{
var tajszam = new int[9];
for (var x = 0; x < tajszam.Length; x++)
{
tajszam[x] = Convert.ToInt32(item.Taj.Substring(x, 1));
}
if ((((tajszam[1] + tajszam[3] + tajszam[5] + tajszam[7]) * 7) + ((tajszam[0] + tajszam[2] + tajszam[4] + tajszam[6]) * 3)) % 10 != tajszam[8])
{
AddErrorMessage(errorDictionary, $"Taj_{item.RowNumber}", string.Format(FelhasznalokResource.TAJszamNemErvenyes, item.RowNumber));
}
}
}
if (string.IsNullOrWhiteSpace(item.Telefon))
{
AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamKotelezo, item.RowNumber));
}
else
{
var match = new Regex(RegularExpressions.Telefon).Match(item.Telefon);
if (!match.Success)
{
AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamHibas, item.RowNumber));
}
else if (!new PhoneAttribute().IsValid(item.Telefon))
{
AddErrorMessage(errorDictionary, $"Telefon_{item.RowNumber}", string.Format(FelhasznalokResource.TelefonszamHibas, item.RowNumber));
}
}
if (string.IsNullOrWhiteSpace(item.Email))
{
AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimKotelezo, item.RowNumber));
}
else
{
var tempByteArray = Encoding.GetEncoding(EncodingName.ISO_8859_8).GetBytes(item.Email);
var encodedString = Encoding.UTF8.GetString(tempByteArray);
if (!encodedString.Equals(item.Email))
{
AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimHibas, item.RowNumber));
}
else if (!new EmailAddressAttribute().IsValid(item.Email))
{
AddErrorMessage(errorDictionary, $"Email_{item.RowNumber}", string.Format(FelhasznalokResource.EmailCimHibas, item.RowNumber));
}
}
}
return !errorDictionary.Any();
}
#endregion
}
}

View file

@ -0,0 +1,13 @@
using System.Web.Http;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class RendszerHibaErtesitesApiController : ApiController
{
}
}

View file

@ -0,0 +1,740 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Caching;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Logic.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
using Kreta.Framework;
using Kreta.Framework.Caching.DictionaryItemTables;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary;
namespace Kreta.Web.Areas.Adminisztracio.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class SystemSettingsApiController : ApiController
{
public SortedList<int, SystemSettingGroup> GetSystemSettings()
{
return new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettings(ClaimData.IsVegyes, ClaimData.FeladatKategoriak, ClaimData.IsSzirIntezmeny);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage ResetSystemSettings()
{
bool result = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ResetSystemSettings(new List<int>() { (int)RendszerBeallitasTipusEnum.Lazar_Ervin_Program_kezelese });
if (result)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveSystemSettings(Dictionary<RendszerBeallitasTipusEnum, dynamic> model)
{
try
{
ModelStateDictionary modelState = ValidateModel(model);
if (modelState.IsValid)
{
new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SetSystemSettings(model, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, modelState);
}
catch (Exception ex)
{
throw new StatusError(
HttpStatusCode.InternalServerError,
StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/)
{
UnHandledException = ex
};
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGradeWeights(Dictionary<string, string> grades)
{
try
{
List<ErtekelesModSulyCo> ertekelesModSulyCoList = grades.Select(grade => new ErtekelesModSulyCo
{
ErtekelesModId = int.Parse(grade.Key),
Suly = int.Parse(grade.Value)
}).ToList();
SessionConnectionType sessionConnetionType = ConnectionTypeExtensions.GetSessionConnectionType();
var adatszotarHelper = new AdatszotarHelper(sessionConnetionType);
foreach (ErtekelesModSulyCo ertekelesModSulyCo in ertekelesModSulyCoList)
{
AdatszotarCO adatszotarCo = adatszotarHelper.GetAdatszotarElem(ertekelesModSulyCo.ErtekelesModId);
adatszotarCo.Suly = ertekelesModSulyCo.Suly;
adatszotarHelper.Update(adatszotarCo, ClaimData.KovTanevID);
}
new TanuloErtekelesHelper(sessionConnetionType).UpdateTantargyAtlag();
KretaServer.KretaServer.Instance.CacheManager.AquireCache<TantargyiAtlagCache>().ClearTantargyiAtlagRegion(sessionConnetionType.IntezmenyAzonosito);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.InternalServerError, StringResourcesUtil.GetString(439) /*Nem sikerült a művelet!*/)
{
UnHandledException = ex
};
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteTantargyfelosztas()
{
try
{
if (ClaimData.IsActivTanev)
{
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.FizikaiTorlesTantargyfelosztas();
return new HttpResponseMessage(HttpStatusCode.OK);
}
throw new Exception(ErrorResource.NemEgyezikMegAzAktivTanevAKivalasztottTanevvel);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteImportaltTantargyfelosztas()
{
try
{
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteAllTargyFelosztas();
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteOrarendek()
{
try
{
if (ClaimData.IsActivTanev)
{
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.FizikaiTorlesOrarendek();
return new HttpResponseMessage(HttpStatusCode.OK);
}
throw new Exception(ErrorResource.NemEgyezikMegAzAktivTanevAKivalasztottTanevvel);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
public ErtekelesModSulyListModel GetGradeWeights()
{
List<ErtekelesModDictionaryItem> ertekelesModDictionaryItems = EnumExtensions.GetErtekelesModDictionaryItems(ClaimData.SelectedTanevID.Value);
var model = new ErtekelesModSulyListModel { ErtekelesModSulyList = new List<ErtekelesModSulyModel>() };
foreach (var ertekelesModDictionaryItem in ertekelesModDictionaryItems)
{
model.ErtekelesModSulyList.Add(new ErtekelesModSulyModel { ErtekelesModId = ertekelesModDictionaryItem.Id, ErtekelesModNev = ertekelesModDictionaryItem.Name, Suly = ertekelesModDictionaryItem.Suly, });
}
return model;
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage FejlecCheckBoxMentes(bool isMegjelenit)
{
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SetIntezmenyFejlecCheckBox(isMegjelenit);
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage LablecCheckBoxMentes(bool isMegjelenit)
{
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SetIntezmenyLablecCheckBox(isMegjelenit);
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage ImageValidate([FromBody] string image)
{
switch (SystemSettingsLogic.ImageValidate(image))
{
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.AFajlKiterjeszteseVagyTipusaNemMegfelelo:
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AFajlKiterjeszteseVagyTipusaNemMegfelelo);
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.HibaTortentXMBNalNemLehetNagyobbAFajlMerete:
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.HibaTortentXMBNalNemLehetNagyobbAFajlMerete, SystemSettingsLogic.MaxFileSizeMB));
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.AKepMagassagaMeghaladjaAMegengedettMeretet:
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.AKepMagassagaMeghaladjaAMegengedettMeretet, SystemSettingsLogic.AllowedMaxHeight));
case Enums.ManualEnums.SystemSettings.SystemSettingsFejlecLablecSzerkesztoHibakEnum.AzOsszesKepSzelessegeMeghaladjaAMegengedettMeretet:
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.AzOsszesKepSzelessegeMeghaladjaAMegengedettMeretet, SystemSettingsLogic.AllowedMaxWidth));
default:
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
public HttpResponseMessage FejlecMentes(FejlecLablecSzerkesztoModel model)
{
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SetIntezmenyFejlec(model.ToCo());
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage FejlecTorles()
{
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteIntezmenyFejlec();
return new HttpResponseMessage(HttpStatusCode.OK);
}
public HttpResponseMessage LablecTorles()
{
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteIntezmenyLablec();
return new HttpResponseMessage(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage LablecMentes(FejlecLablecSzerkesztoModel model)
{
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SetIntezmenyLablec(model.ToCo());
return new HttpResponseMessage(HttpStatusCode.OK);
}
private ModelStateDictionary ValidateModel(Dictionary<RendszerBeallitasTipusEnum, dynamic> model)
{
ModelStateDictionary modelState = new ModelStateDictionary();
RendszerBeallitasTipusEnum beallitas;
if (!model[RendszerBeallitasTipusEnum.Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait])
{
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_szocialis_tanugyi_es_SNI_BTM_adatait;
if (model[beallitas])
{
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4018) /*A funkció csak akkor engedélyezhető, ha az 'Osztályfőnök módosíthatja osztályába járó tanulók adatait' érték IGEN-re van állítva.*/);
}
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat;
if (model[beallitas])
{
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4018) /*A funkció csak akkor engedélyezhető, ha az 'Osztályfőnök módosíthatja osztályába járó tanulók adatait' érték IGEN-re van állítva.*/);
}
}
if (!model[RendszerBeallitasTipusEnum.Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait] || !model[RendszerBeallitasTipusEnum.Tanulo_vallasi_adatainak_kezelese])
{
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_kezelheti_az_osztalyaba_jaro_tanulok_vallasi_adatait;
if (model[beallitas])
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FunkcioNemEngedelyezhetoAdatkezeleseiBeallitasokAlapjan);
}
}
if (!model[RendszerBeallitasTipusEnum.Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait] || !model[RendszerBeallitasTipusEnum.Tanulo_sportoloi_adatainak_kezelese])
{
beallitas = RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait;
if (model[beallitas])
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FunkcioNemEngedelyezhetoAdatkezeleseiBeallitasokAlapjan);
}
}
#region Az elektronikus napló megjelenésének kezdőidőpontja és záróidőpontja
var helper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var ds = helper.GetCsengetesiOrakKezdVeg();
TimeSpan rendszerKezdes = default;
beallitas = RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesKezdoUres);
}
else
{
if (TimeSpan.TryParse(model[beallitas], out rendszerKezdes) && rendszerKezdes.TotalMilliseconds >= 0)
{
var csengetesiKezdes = ds.Tables[0].Rows[0]["Kezd"].ToString();
if (!string.IsNullOrWhiteSpace(csengetesiKezdes) && rendszerKezdes > TimeSpan.Parse(csengetesiKezdes))
{
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4318) + TimeSpan.Parse(csengetesiKezdes) /*Az elektronikus napló megjelenésének kezdőidőpontja legkésőbb a legkorábbi csengetési rendi időpont kezdete lehet. Ennek értéke jelenleg: */);
}
}
else
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesKezdoFormatum);
}
}
beallitas = RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesZaroUres);
}
else
{
if (TimeSpan.TryParse(model[beallitas], out TimeSpan rendszerVege) && rendszerVege.TotalMilliseconds >= 0)
{
var csengetesiVege = ds.Tables[0].Rows[0]["Vege"].ToString();
if (!string.IsNullOrWhiteSpace(csengetesiVege) && rendszerVege < TimeSpan.Parse(csengetesiVege))
{
modelState.AddModelError(beallitas.ToString(), StringResourcesUtil.GetString(4319) + TimeSpan.Parse(csengetesiVege) /*Az elektronikus napló megjelenésének záróidőpontja legkorábban a legkésőbbi csengetési rendi időpont vége lehet. Ennek értéke jelenleg: */);
}
if (rendszerKezdes > rendszerVege)
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesKezdoKesobbi);
}
}
else
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.ElektronikusNaploMegjelenesZaroFormatum);
}
}
#endregion Az elektronikus napló megjelenésének kezdőidőpontja és záróidőpontja
TimeSpan fogadoOraKezdo = default;
TimeSpan fogadoOraZaro = default;
beallitas = RendszerBeallitasTipusEnum.Fogado_Ora_Kezdoidopontja;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraKezdoUres);
}
else if (!TimeSpan.TryParse(model[beallitas], out fogadoOraKezdo))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraKezdoFormatum);
}
beallitas = RendszerBeallitasTipusEnum.Fogado_Ora_Zaroidopontja;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraZaroUres);
}
else if (!TimeSpan.TryParse(model[beallitas], out fogadoOraZaro))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraZaroFormatum);
}
else if (fogadoOraKezdo > fogadoOraZaro)
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.FogadoOraKezdoKesobbi);
}
TimeSpan nemKotottKezdete = default;
beallitas = RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_kezdoidopontja;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesKezdoUres);
}
else if (!(TimeSpan.TryParse(model[beallitas], out nemKotottKezdete) && nemKotottKezdete.TotalMilliseconds >= 0))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesKezdoFormatum);
}
beallitas = RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_zaroidopontja;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesZaroUres);
}
else if (!(TimeSpan.TryParse(model[beallitas], out TimeSpan nemKotottVege) && nemKotottVege.TotalMilliseconds >= 0))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoMegjelenesZaroFormatum);
}
else
{
if (nemKotottKezdete > nemKotottVege)
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaIdoMegjelenesKezdoKesobbi);
}
if (nemKotottKezdete == nemKotottVege)
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.NemKotottMunkaidoKezdoZaroMegegyezik);
}
}
DateTime gyakorlatKezdeteDatum = default;
DateTime gyakorlatVegDatum = default;
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatKezdeteUres);
}
else if (!DateTime.TryParse(model[beallitas], out gyakorlatKezdeteDatum))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatKezdeteFormatum);
}
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum;
if (!model.ContainsKey(beallitas))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatVegeUres);
}
else if (!DateTime.TryParse(model[beallitas], out gyakorlatVegDatum))
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatVegeFormatum);
}
else if (gyakorlatKezdeteDatum > gyakorlatVegDatum)
{
modelState.AddModelError(beallitas.ToString(), SystemSettingsResource.OsszefuggoSzakmaiGyakorlatKezdeteKesobbi);
}
var (kezdoNap, utolsoNap) = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevElsoEsUtolsoNapja();
beallitas = RendszerBeallitasTipusEnum.Naplozaras_eves_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.I_Negyedeves_jegyek_megjelenesenek_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.II_Negyedeves_jegyek_megjelenesenek_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.III_Negyedeves_jegyek_megjelenesenek_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.IV_Negyedeves_jegyek_megjelenesenek_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Felevi_jegyek_megjelenesenek_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Ertekeles_datumanak_minimuma;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Ertesites_bukasra_allo_tanulokrol;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Ertesites_bukasra_allo_vegzos_tanulokrol;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
beallitas = RendszerBeallitasTipusEnum.Ertesites_Tanev_rendi_valtoztatasrol_esetek;
if (model.Keys.Contains(beallitas))
{
DatumEllenorzes(model[beallitas], kezdoNap, utolsoNap, modelState, beallitas);
}
return modelState;
}
private void DatumEllenorzes(string ertek, DateTime kezdoNap, DateTime utolsoNap, ModelStateDictionary modelState, RendszerBeallitasTipusEnum beallitas)
{
if (!(DateTime.TryParse(ertek, out DateTime naplozarasEvesDatum)))
{
modelState.AddModelError(beallitas.ToString(), "Rossz dátum formátum");
}
else if ((naplozarasEvesDatum < kezdoNap) || (naplozarasEvesDatum > utolsoNap))
{
modelState.AddModelError(beallitas.ToString(), "A beállított dátumnak a tanév első és utolsó napja között kell lennie.");
}
}
#region Tanuló Értékelés Mondatbank
public DataSourceResult GetTanuloErtekelesMondatbankGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
KretaGridDataSourceRequest request)
{
data = data.Replace("_", string.Empty);
var model = JsonConvert.DeserializeObject<TanuloErtekelesMondatbankSearchModel>(data);
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
DataSet dataSet = helper.GetTanuloErtekelesMondatbankGrid(ConvertTanuloErtekelesMondatbankSearchModelToSearchCo(model));
return dataSet.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanuloErtekelesMondatbankItem(TanuloErtekelesMondatbankItemModel model)
{
ModelState.Merge(model.Validate());
if (ModelState.IsValid)
{
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SaveTanuloErtekelesMondatbankItem(model.ToCo());
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteTanuloErtekelesMondatbankItem([FromBody] int id)
{
try
{
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteTanuloErtekelesMondatbankItems(new List<int> { id });
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult DeleteSelectedTanuloErtekelesMondatbankItems(List<int> idList)
{
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (counter, errorMsg) = helper.DeleteTanuloErtekelesMondatbankItems(idList);
if (counter == idList.Count)
return Json(new { Message = errorMsg });
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult SaveSelectedTanuloErtekelesMondatbankItems(TanuloErtekelesMondatbankTobbesItemModel model)
{
ModelState.Merge(model.Validate());
if (ModelState.IsValid)
{
var helper = new TanuloErtekelesMondatbankHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (counter, errorMsg) = helper.ModifyTanuloErtekelesMondatbankItems(model.ToCo());
if (counter == model.SelectedIdList.Count)
return Json(new { Message = errorMsg });
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
}
var a = string.Join(Environment.NewLine, ModelState.Values.Select(x => x.Errors.Select(y => y.ErrorMessage)).Select(z => string.Join(Environment.NewLine, z.ToArray())).ToArray());
throw new StatusError(HttpStatusCode.BadRequest, a);
}
private TanuloErtekelesMondatbankSearchCO ConvertTanuloErtekelesMondatbankSearchModelToSearchCo(TanuloErtekelesMondatbankSearchModel model)
{
return new TanuloErtekelesMondatbankSearchCO()
{
EvfolyamTipusIdList = model.EvfolyamTipusIdList,
RovidNev = model.RovidNevS,
Szoveg = model.SzovegS,
TantargyIdList = model.TantargyIdList.Select(x => (tantargyId: x, tipusId: x != 0 ? TanuloErtekelesMondatbankHelper.GetTanuloErtekelesMondatbankTipusIdByTantargyId(x) : (int)ErtMondatbankTipusEnum.Tantargy)).ToList(),
TanuloErtekelesTipusIdList = model.TanuloErtekelesTipusIdList,
};
}
#endregion Tanuló Értékelés Mondatbank
#region CsoportTipus
public List<CsoportTipusModel> GetCsoportTipusList()
{
List<CsoportTipusCO> csoportTipusList = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportTipusList();
return csoportTipusList.Select(ConvertCOToModel).ToList();
}
public DataSourceResult GetCsoportTipusGridList([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
List<CsoportTipusCO> csoportTipusList = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportTipusList();
return csoportTipusList.Select(ConvertCOToGridModel).ToList().ToDataSourceResult(request);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveCsoportTipusList(List<CsoportTipusModel> model)
{
if (ModelState.IsValid)
{
List<CsoportTipusCO> csoportTipusList = model.Select(ConvertModelToCO).ToList();
new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveCsoportTipusList(csoportTipusList, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
private CsoportTipusModel ConvertCOToModel(CsoportTipusCO csoportTipus)
{
return new CsoportTipusModel
{
Id = csoportTipus.Id,
Nev = csoportTipus.Nev,
IsTanoraiCelu = csoportTipus.IsTanoraiCelu,
IsProtected = csoportTipus.IsProtected,
OraPerc = csoportTipus.OraPerc
};
}
private CsoportTipusGridModel ConvertCOToGridModel(CsoportTipusCO csoportTipus)
{
return new CsoportTipusGridModel
{
ID = csoportTipus.Id.ToString(),
Nev = csoportTipus.Nev,
IsTanoraiCelu = csoportTipus.IsTanoraiCelu,
IsProtected = csoportTipus.IsProtected,
OraPerc = csoportTipus.OraPerc
};
}
private CsoportTipusCO ConvertModelToCO(CsoportTipusModel csoportTipus)
{
return new CsoportTipusCO
{
Id = csoportTipus.Id,
Nev = csoportTipus.Nev,
IsTanoraiCelu = csoportTipus.IsTanoraiCelu,
IsProtected = csoportTipus.IsProtected,
OraPerc = csoportTipus.OraPerc
};
}
#endregion CsoportTipus
#region JuttatasAdatok
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public void JuttatasAdatokUjraGeneralasa()
{
new SzakkepzesiJuttatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateOsszesTanuloSzakkepzesiJuttatasok();
}
//[HttpPost]
//[ApiValidateAjaxAntiForgeryToken]
//public void FeleviAtlagokUjraGeneralasa()
//{
// new SzakkepzesiJuttatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateOsszesTanuloAtlag(AtlagTipusEnum.Felevi);
//}
//[HttpPost]
//[ApiValidateAjaxAntiForgeryToken]
//public void EvvegiAtlagokUjraGeneralasa()
//{
// new SzakkepzesiJuttatasokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateOsszesTanuloAtlag(AtlagTipusEnum.Evvegi);
//}
#endregion
}
}

View file

@ -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;
}
}
}

View file

@ -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();
}
}
}
}

View file

@ -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();
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}
}

View file

@ -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));
}
}
}

View file

@ -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);
}
}
}

View file

@ -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 });
}
}
}

View file

@ -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());
}
}
}

View file

@ -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());
}
}
}

View file

@ -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();
}
}
}

View file

@ -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));
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}
}

View file

@ -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);
}
}
}

View file

@ -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}" };
}
}
}

View 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;
}
}
}
}

View file

@ -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);
}
}
}

View 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

View file

@ -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
}
}

View file

@ -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();
}
}

View file

@ -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}" };
}
}
}

View file

@ -0,0 +1,37 @@
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Areas.Adminisztracio.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.Helpers
{
public class ProfilHelper
{
public SajatAdatlapInfoModel GetTanarSajatAdatlapDataForInfo(int id)
{
var tanarAdatCo = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanarAdatok(id);
var egyhaztartasbanElokCo = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyhaztartasbanElokData(ClaimData.FelhasznaloId);
return SajatAdatlapInfoModel.ConvertTanarAdatCoToModel(tanarAdatCo, egyhaztartasbanElokCo);
}
public SajatAdatlapInfoModel GetTanuloSajatAdatlapDataForInfo(int id, string urlHost)
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var tanuloAdatCo = new TanuloHelper(connectionType).GetTanuloiAdatok(id, ClaimData.KovTanevID, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
var bankszamlaIgenylesCo = new TanuloHelper(connectionType).GetBankszamlaIgenylesData(ClaimData.FelhasznaloId, urlHost);
var egyhaztartasbanElokCo = new FelhasznaloHelper(connectionType).GetEgyhaztartasbanElokData(ClaimData.FelhasznaloId);
var model = SajatAdatlapInfoModel.ConvertTanuloAdatCoToModel(tanuloAdatCo, bankszamlaIgenylesCo, egyhaztartasbanElokCo);
model.TanuloBankszamla.IsSzakkepzo = new IntezmenyHelper(connectionType).GetIntezmenyiAdatok().IsSzakkepzo;
return model;
}
public SajatAdatlapInfoModel GetGondviseloSajatAdatlapDataForInfo(int id, string urlHost)
{
var felhasznalo4TAdatokCo = new GondviseloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviselo4TAdatok(ClaimData.GondviseloId.Value);
var gondviseloAdatCo = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloById(id);
var bankszamlaIgenylesCo = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBankszamlaIgenylesData(ClaimData.FelhasznaloId, urlHost);
var egyhaztartasbanElokCo = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyhaztartasbanElokData(ClaimData.FelhasznaloId);
return SajatAdatlapInfoModel.ConvertGondviseloAdatCoToModel(gondviseloAdatCo, felhasznalo4TAdatokCo, bankszamlaIgenylesCo, egyhaztartasbanElokCo);
}
}
}

View file

@ -0,0 +1,47 @@
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.Helpers
{
public static class TanuloErtekelesMondatbankWebHelper
{
public static List<SelectListItem> GetTipusList()
{
var result = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ErtekelesTipus, ClaimData.SelectedTanevID.Value).ToSelectListItemList(new List<string> { ((int)ErtekelesTipusEnum.na).ToString() });
return result;
}
public static List<SelectListItem> GetEvfolyamTipusList()
{
var result = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus, ClaimData.SelectedTanevID.Value).ToSelectListItemList(new List<string> { ((int)EvfolyamTipusEnum.na).ToString() });
return result;
}
public static List<SelectListItem> GetTantargyList()
{
var list = new List<SelectListItem>
{
new SelectListItem
{
Value = TanuloErtekelesMondatbankHelper.MagatartasTantargyId.ToString(),
Text = TanuloErtekelesResource.Magatartas
},
new SelectListItem
{
Value = TanuloErtekelesMondatbankHelper.SzorgalomTantargyId.ToString(),
Text = TanuloErtekelesResource.Szorgalom
}
};
List<SelectListItem> result = list.Union(new TantargyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTantargyakForDDL().ToSelectListItemList()).ToList();
return result;
}
}
}

View file

@ -0,0 +1,226 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Enums;
using Kreta.Resources;
using Kreta.Web.Models;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdatszotarGridModel : IKretaIdentity
{
public const string AdatszotarExportAttributeId = nameof(AdatszotarExportAttributeId);
public const string AdatszotarNapTipusExportAttributeId = nameof(AdatszotarNapTipusExportAttributeId);
public AdatszotarGridModel()
{
this.IsLathato = true;
AdatszotarTipusList = new List<SelectListItem>();
ZaradekSzovegList = new List<ZaradekSzovegModel>();
}
public AdatszotarGridModel(AdatszotarItemCo itemCo) : this()
{
ID = itemCo.Id.ToString();
AdatszotarTipusId = itemCo.AdatszotarTipusId;
AdatszotarTipusNev = itemCo.AdatszotarTipusNev;
Megnevezes = itemCo.Megnevezes;
Sorszam = itemCo.Sorszam;
Megnevezes1 = itemCo.Megnevezes1;
Megnevezes2 = itemCo.Megnevezes2;
Megnevezes3 = itemCo.Megnevezes3;
Megnevezes4 = itemCo.Megnevezes4;
IsLathato = itemCo.IsLathato;
IsLathatoText = itemCo.IsLathatoText;
IsProtected = itemCo.IsProtected;
IsProtectedText = itemCo.IsProtectedText;
IsSorszamozando = itemCo.IsSorszamozando;
IsSorszamozandoText = itemCo.IsSorszamozandoText;
IsTanorai = itemCo.IsTanorai;
IsTanoraiText = itemCo.IsTanoraiText;
IsTanorankivuli = itemCo.IsTanorankivuli;
IsTanorankivuliText = itemCo.IsTanorankivuliText;
IsLeNemKotottMunkaido = itemCo.IsLeNemKotottMunkaido;
IsLeNemKotottMunkaidoText = itemCo.IsLeNemKotottMunkaidoText;
}
public AdatszotarGridModel(AdatszotarCO co) : this()
{
ID = string.Empty;
AdatszotarID = co.ID;
AdatszotarTipusNev = co.AdatszotarTipus;
AdatszotarTipusId = co.AdatszotarTipusId;
IsLathato = co.Lathato ?? false;
Megnevezes = co.Megnevezes;
Sorszam = co.Sorszam;
Megnevezes1 = co.Megnevezes1;
Megnevezes2 = co.Megnevezes2;
Megnevezes3 = co.Megnevezes3;
Megnevezes4 = co.Megnevezes4;
Color = "#" + co.Color != null ? co.Color : "000000";
IsBold = co.IsBold;
Suly = co.Suly;
IsProtected = co.Protected;
IsSorszamozando = co.IsSorszamozando;
IsTanorai = co.IsTanorai;
IsTanorankivuli = co.IsTanorankivuli;
IsLeNemKotottMunkaido = co.IsLeNemKotottMunkaido;
IsBizonyitvanybanMegjelenik = co.IsBizonyitvanybanMegjelenik;
IsNaplobanMegjelenik = co.IsNaplobanMegjelenik;
IsTorzslaponMegjelenik = co.IsTorzslaponMegjelenik;
ZaradekSzovegList = (co.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus) ?
ZaradekSzovegModel.AdatszotarNyelvCoToZaradekSzovegModel(co.ZaradekSzovegCoList) :
new List<ZaradekSzovegModel>();
}
public string ID { get; set; }
public int? AdatszotarID { get; set; }
public int AdatszotarTipusId { get; set; }
[Display(Name = nameof(AdminisztracioResource.Adatszotar), ResourceType = typeof(AdminisztracioResource))]
public string AdatszotarTipusNev { get; set; }
public List<SelectListItem> AdatszotarTipusList { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 01, nameof(AdminisztracioResource.Megnevezes), typeof(AdminisztracioResource))]
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 01, nameof(AdminisztracioResource.Megnevezes), typeof(AdminisztracioResource))]
[Required(ErrorMessageResourceName = nameof(ErrorResource.MegnevezesMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
[StringLength(250, ErrorMessageResourceName = nameof(ErrorResource.AMegnevezesMax250KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.Megnevezes), ResourceType = typeof(AdminisztracioResource))]
public string Megnevezes { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 00, nameof(AdminisztracioResource.Sorszam), typeof(AdminisztracioResource))]
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 00, nameof(AdminisztracioResource.Sorszam), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.Sorszam), ResourceType = typeof(AdminisztracioResource))]
public int? Sorszam { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 02, nameof(AdminisztracioResource.Megnevezes1), typeof(AdminisztracioResource))]
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 02, nameof(AdminisztracioResource.Megnevezes1), typeof(AdminisztracioResource))]
[StringLength(250, ErrorMessageResourceName = nameof(ErrorResource.AMegnevezes1Max250KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.Megnevezes1), ResourceType = typeof(AdminisztracioResource))]
public string Megnevezes1 { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 03, nameof(AdminisztracioResource.Megnevezes2), typeof(AdminisztracioResource))]
[StringLength(250, ErrorMessageResourceName = nameof(ErrorResource.AMegnevezes2Max250KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.Megnevezes2), ResourceType = typeof(AdminisztracioResource))]
public string Megnevezes2 { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 04, nameof(AdminisztracioResource.Megnevezes3), typeof(AdminisztracioResource))]
[StringLength(250, ErrorMessageResourceName = nameof(ErrorResource.AMegnevezes3Max250KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.Megnevezes3), ResourceType = typeof(AdminisztracioResource))]
public string Megnevezes3 { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 05, nameof(AdminisztracioResource.Megnevezes4), typeof(AdminisztracioResource))]
[StringLength(250, ErrorMessageResourceName = nameof(ErrorResource.AMegnevezes4Max250KarakterLehet), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.Megnevezes4), ResourceType = typeof(AdminisztracioResource))]
public string Megnevezes4 { get; set; }
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 04, nameof(AdminisztracioResource.Lathato), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.Lathato), ResourceType = typeof(AdminisztracioResource))]
public bool IsLathato { get; set; }
[Display(Name = nameof(AdminisztracioResource.VedettElem), ResourceType = typeof(AdminisztracioResource))]
public bool IsProtected { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 07, nameof(AdminisztracioResource.Lathato), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.Lathato), ResourceType = typeof(AdminisztracioResource))]
public string IsLathatoText { get; set; }
[SimpleExportColumn(AdatszotarExportAttributeId, 06, nameof(AdminisztracioResource.VedettElem), typeof(AdminisztracioResource))]
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 03, nameof(AdminisztracioResource.VedettElem), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.VedettElem), ResourceType = typeof(AdminisztracioResource))]
public string IsProtectedText { get; set; }
[Display(Name = nameof(AdminisztracioResource.Szin), ResourceType = typeof(AdminisztracioResource))]
public string Color { get; set; }
[Display(Name = nameof(AdminisztracioResource.Felkover), ResourceType = typeof(AdminisztracioResource))]
public bool IsBold { get; set; }
[Display(Name = nameof(AdminisztracioResource.Suly), ResourceType = typeof(AdminisztracioResource))]
public int Suly { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsSorszamozando), ResourceType = typeof(AdminisztracioResource))]
public bool IsSorszamozando { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsTanorai), ResourceType = typeof(AdminisztracioResource))]
public bool IsTanorai { get; set; }
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 06, nameof(AdminisztracioResource.IsTanoraiGridHeader), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.IsTanoraiGridHeader), ResourceType = typeof(AdminisztracioResource))]
public string IsTanoraiText { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsTanorankivuli), ResourceType = typeof(AdminisztracioResource))]
public bool IsTanorankivuli { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsLeNemKotottMunkaido), ResourceType = typeof(AdminisztracioResource))]
public bool IsLeNemKotottMunkaido { get; set; }
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 08, nameof(AdminisztracioResource.IsLeNemKotottMunkaidoGridHeader), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.IsLeNemKotottMunkaidoGridHeader), ResourceType = typeof(AdminisztracioResource))]
public string IsLeNemKotottMunkaidoText { get; set; }
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 05, nameof(AdminisztracioResource.Sorszamozando), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.IsSorszamozandoGridHeader), ResourceType = typeof(AdminisztracioResource))]
public string IsSorszamozandoText { get; set; }
[SimpleExportColumn(AdatszotarNapTipusExportAttributeId, 07, nameof(AdminisztracioResource.IsTanorankivuliGridHeader), typeof(AdminisztracioResource))]
[Display(Name = nameof(AdminisztracioResource.IsTanorankivuliGridHeader), ResourceType = typeof(AdminisztracioResource))]
public string IsTanorankivuliText { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsNaplobanMegjelenik), ResourceType = typeof(AdminisztracioResource))]
public bool IsNaplobanMegjelenik { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsTorzslaponMegjelenik), ResourceType = typeof(AdminisztracioResource))]
public bool IsTorzslaponMegjelenik { get; set; }
[Display(Name = nameof(AdminisztracioResource.IsBizonyitvanybanMegjelenik), ResourceType = typeof(AdminisztracioResource))]
public bool IsBizonyitvanybanMegjelenik { get; set; }
public List<ZaradekSzovegModel> ZaradekSzovegList { get; set; }
public AdatszotarCO ToCo()
{
AdatszotarCO co = new AdatszotarCO
{
ID = this.AdatszotarID,
AdatszotarTipus = this.AdatszotarTipusNev,
AdatszotarTipusId = this.AdatszotarTipusId,
Lathato = this.IsLathato,
Megnevezes = this.Megnevezes,
Sorszam = this.Sorszam,
Megnevezes1 = this.Megnevezes1,
Megnevezes2 = this.Megnevezes2,
Megnevezes3 = this.Megnevezes3,
Megnevezes4 = this.Megnevezes4,
Color = this.Color != null ? this.Color.Replace("#", "") : "",
IsBold = this.IsBold,
Suly = this.Suly,
Protected = this.IsProtected,
IsSorszamozando = this.IsSorszamozando,
IsTanorai = this.IsTanorai,
IsTanorankivuli = this.IsTanorankivuli,
IsLeNemKotottMunkaido = this.IsLeNemKotottMunkaido,
IsBizonyitvanybanMegjelenik = this.IsBizonyitvanybanMegjelenik,
IsNaplobanMegjelenik = this.IsNaplobanMegjelenik,
IsTorzslaponMegjelenik = this.IsTorzslaponMegjelenik
};
co.ZaradekSzovegCoList = (this.AdatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.SorolasOkaTipus) ?
this.ZaradekSzovegList.ConvertAll(x => new AdatszotarZaradekNyelvCo
{
NyelvId = x.NyelvId,
Name = x.Szoveg
}) :
new List<AdatszotarZaradekNyelvCo>();
return co;
}
}
}

View file

@ -0,0 +1,11 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdatszotarSearchModel
{
[Display(Name = nameof(AdminisztracioResource.AdatszotarTipus), ResourceType = typeof(AdminisztracioResource))]
public int? AdatszotarTipusTypeId { get; set; }
}
}

View file

@ -0,0 +1,13 @@
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdminDashboardAbstarctModel
{
public string IntezmenyNev { get; set; }
public string IntezmenyAzonosito { get; set; }
public string IntezmenyAlternativAzonosito { get; set; }
public string TanevNev { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public static class AdminDashboardAdattisztitasAlkalmazottModel
{
public static DateTime AdattisztitasUtolsoFrissites { get; set; }
public static int AlkalmazottakSzama { get; set; }
public static int AlkalmazottakOsszesHibai { get; set; }
}
}

View file

@ -0,0 +1,77 @@
using System;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdminDashboardAdminisztracioModel : AdminDashboardAbstarctModel
{
public bool isKlebelsberg { get; set; }
public int NincsAktivCsengetesiRend { get; set; }
public int NincsAllampolgarsagaTanulo { get; set; }
public int NincsAnyanyelvTanulo { get; set; }
public int NincsBesorolasiFokozatAlkalmazott { get; set; }
public int NincsEvfolyamCsoport { get; set; }
public int NincsEvfolyamOsztaly { get; set; }
public int NincsFeladatellatasiHelyMukodesiHely { get; set; }
public int NincsFeladatellatasiHelyTipus { get; set; }
public int NincsKategoriaTantargy { get; set; }
public int NincsMunkakorAlkalmazott { get; set; }
public int NincsMunkaviszonyTipusAlkalmazott { get; set; }
public int NincsNemAlkalmazott { get; set; }
public int NincsNemTanulo { get; set; }
public int NincsOsztalybaSorolvaTanulo { get; set; }
public int NincsOsztalyOsztalyfonok { get; set; }
public int NincsSzakmacsoportTanulo { get; set; }
public int NincsTipusCsoport { get; set; }
public int UresCsoport { get; set; }
public int UresOsztaly { get; set; }
public int NSzFHRosszMunkakor { get; set; }
public DateTime? LicenceDatum { get; set; }
public int NincsEmailAlkalmazott { get; set; }
public int NincsAlkalmazottSZTSZ { get; set; }
public int HibasanRogzitettOktatasiAzonositok { get; set; }
public int HibasanRogzitettTajSzamok { get; set; }
public int HibasanRogzitettAdoazonositoJelek { get; set; }
public bool IsLEPModulEngedelyezett { get; set; }
public bool VanHibasEmailCim { get; set; }
public int VanKettosOsztalybesorolas { get; set; }
/// <summary>
/// Covid fertőzöttek
/// </summary>
public bool VanCovidFertozott { get; set; }
/// <summary>
/// Gondviselő által bejelentettek
/// </summary>
public bool VanCovidBejelentett { get; set; }
}
}

View file

@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdminDashboardModel
{
public AdminDashboardAdminisztracioModel AdminisztracioModel { get; set; }
public AdminDashboardNaploModel NaploModel { get; set; }
public AdminDashboardStatisztikaModel StatisztikaModel { get; set; }
public IList<AdminDashboardItemModel> DashboardUzenetek { get; set; }
public IList<string> EgyediAzonositokByIntezmeny { get; set; }
public AdminDashboardSzakkepzesiJuttatasokModel SzakkepzesiJuttatasokModel { get; set; }
public AdminDashboardTableModel Ugyek { get; set; }
}
public class AdminDashboardItemModel
{
public string Name { get; set; }
public string Content { get; set; }
public AdminDashboardTipusEnum Type { get; set; }
public int Sorrend { get; set; }
public string EgyediAzonosito { get; set; }
}
public class AdminDashboardPopupItemModel : AdminDashboardItemModel
{
public int DashboardUzenetFelhasznaloId { get; set; }
public int MegjelenitesekSzama { get; set; }
public DateTime? UtolsoMegtekintesIdeje { get; set; }
public string EgyediMuvelet { get; set; }
}
public class AdminDashboardTableModel
{
public string Name { get; set; }
public string Url { get; set; }
public bool OpenInNewWindow { get; set; }
public bool IsEnabled { get; set; }
public List<string> Headers { get; set; }
public List<AdminDashboardTableRowModel> Rows { get; set; }
}
public class AdminDashboardTableRowModel
{
public List<string> Columns { get; set; }
}
public class Ugy
{
public int Azonosito { get; set; }
public DateTime BekuldesIdopontja { get; set; }
public string TanuloNev { get; set; }
public string TanuloOsztaly { get; set; }
public string UgyTipusKod { get; set; }
}
}

View file

@ -0,0 +1,25 @@
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdminDashboardNaploModel : AdminDashboardAbstarctModel
{
public int NemLepettBeHonapAlkalmazott { get; set; }
public int NemLepettBeKetHetAlkalmazott { get; set; }
public int NincsBelepesAlkalmazott { get; set; }
public int NincsBelepesGondviselo { get; set; }
public int NincsBelepesTanulo { get; set; }
public int ZarasiGond { get; set; }
public string NaploZarasanakBeallitasa { get; set; }
public string NaploFixDatumuZarasanakIdopontja { get; set; }
public NaplozarasTipusaEnum NaploZarasTipusa { get; set; }
}
}

View file

@ -0,0 +1,23 @@
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdminDashboardStatisztikaModel : AdminDashboardAbstarctModel
{
public string AktivTanevNeve { get; set; }
public int AktivTanulokSzama { get; set; }
public int AlkalmazottakSzama { get; set; }
public int CsoportokSzama { get; set; }
public int EszkozokSzama { get; set; }
public int OsztalyokSzama { get; set; }
public int TanulokSzama { get; set; }
public int TermekSzama { get; set; }
public double TtfOrakSzama { get; set; }
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AdminDashboardSzakkepzesiJuttatasokModel
{
public bool IsSzakkepzoJuttatas { get; set; }
public int NemRendelkezikOsztondijAlapAdattal { get; set; }
public int NemRendelkezikOsztondijUtalasAdattal { get; set; }
}
}

View file

@ -0,0 +1,94 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers.DokumentumHelpers;
using Kreta.Enums;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Helpers;
using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public abstract class BaseTanuloErtekelesMondatbankItemModel
{
[Display(Name = nameof(TanuloErtekelesResource.ErtekelesTipus), ResourceType = typeof(TanuloErtekelesResource))]
public abstract int? TanuloErtekelesTipusId { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.EvfolyamTipus), ResourceType = typeof(TanuloErtekelesResource))]
public abstract int? EvfolyamTipusId { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.Tantargy), ResourceType = typeof(TanuloErtekelesResource))]
public abstract int? TantargyId { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.Szoveg), ResourceType = typeof(TanuloErtekelesResource))]
public abstract string Szoveg { get; set; }
[MaxLength(3, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.RovidNev), ResourceType = typeof(TanuloErtekelesResource))]
public string RovidNev { get; set; }
public List<SelectListItem> TipusList { get; set; }
public List<SelectListItem> EvfolyamTipusList { get; set; }
public List<SelectListItem> TantargyList { get; set; }
protected BaseTanuloErtekelesMondatbankItemModel(bool mustSetSelectListItemLists = true)
{
if (mustSetSelectListItemLists)
{
SetSelectListItemLists(this);
}
TanuloErtekelesTipusId = null;
EvfolyamTipusId = null;
TantargyId = null;
}
protected void SetSelectListItemLists(BaseTanuloErtekelesMondatbankItemModel model)
{
var defaultList = new List<SelectListItem>
{
new SelectListItem
{
Value = "0",
Text = CommonResource.Mind
}
};
model.TipusList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetTipusList()).ToList();
model.EvfolyamTipusList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetEvfolyamTipusList()).ToList();
model.TantargyList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetTantargyList()).ToList();
}
public List<int> NemzetiDokumentumNyelvek { get; set; } = new List<int>();
public bool IsNyelviesitesActive => NemzetiDokumentumNyelvek.Any();
public bool IsNemetNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.nemet);
public bool IsHorvatNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.horvat);
public bool IsRomanNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.roman);
public bool IsSzerbNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.szerb);
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegNemet), ResourceType = typeof(TanuloErtekelesResource))]
public string SzovegNemet { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegHorvat), ResourceType = typeof(TanuloErtekelesResource))]
public string SzovegHorvat { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegRoman), ResourceType = typeof(TanuloErtekelesResource))]
public string SzovegRoman { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegSzerb), ResourceType = typeof(TanuloErtekelesResource))]
public string SzovegSzerb { get; set; }
public abstract ModelStateDictionary Validate();
}
}

View file

@ -0,0 +1,44 @@
using System.Collections.Generic;
using Kreta.Enums;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class BelepesKezeloModel
{
public BelepesKezeloModel()
{
Lehetosegek = new List<BelepesiLehetoseg>();
}
public string OrganizationName { get; set; }
public string UserName { get; set; }
public string ProfilImgSrc { get; set; }
public List<BelepesiLehetoseg> Lehetosegek { get; set; }
public string CancelLinkText { get; set; }
public string CancelLinkAction { get; set; }
public class BelepesiLehetoseg
{
public string Name { get; set; }
public SzerepkorTipusEnum Szerepkor { get; set; }
public LehetosegTipus Tipus { get; set; }
}
public enum LehetosegTipus
{
Kreta = 1,
DKT = 2,
Eugy = 3,
ESL = 4,
Fokusz = 5,
EJelentkezes = 6,
Leltar = 7,
Konyvtar = 8
}
}
}

View file

@ -0,0 +1,30 @@
using Kreta.BusinessLogic.Interfaces;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class CsoportTipusModel
{
public int Id { get; set; }
public string Nev { get; set; }
public bool IsTanoraiCelu { get; set; }
public bool IsProtected { get; set; }
public int? OraPerc { get; set; }
}
public class CsoportTipusGridModel : IKretaIdentity
{
public string ID { get; set; }
public string Nev { get; set; }
public bool IsTanoraiCelu { get; set; }
public bool IsProtected { get; set; }
public int? OraPerc { get; set; }
}
}

View file

@ -0,0 +1,14 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class DataForMdszModel
{
public List<int> Tanulok { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.FeladhelySorszamMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
public int? FeladhelySorszam { get; set; }
}
}

View file

@ -0,0 +1,27 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class DiakolimpiaGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(AdminisztracioResource.Nev), ResourceType = typeof(AdminisztracioResource))]
public string Nev { get; set; }
[Display(Name = nameof(AdminisztracioResource.SzuletesiDatum), ResourceType = typeof(AdminisztracioResource))]
public DateTime SzuletesiDatum { get; set; }
[Display(Name = nameof(AdminisztracioResource.AnyjaNeve), ResourceType = typeof(AdminisztracioResource))]
public string AnyjaNeve { get; set; }
[Display(Name = nameof(AdminisztracioResource.Osztaly), ResourceType = typeof(AdminisztracioResource))]
public string Osztalya { get; set; }
[Display(Name = nameof(AdminisztracioResource.OktatasiAzonosito), ResourceType = typeof(AdminisztracioResource))]
public string OktatasiAzonosito { get; set; }
}
}

View file

@ -0,0 +1,27 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class DiakolimpiaSearchModel
{
[Display(Name = nameof(AdminisztracioResource.Nev), ResourceType = typeof(AdminisztracioResource))]
public string SearchNev { get; set; }
[Display(Name = nameof(AdminisztracioResource.SzuletesiDatum), ResourceType = typeof(AdminisztracioResource))]
public DateTime? SearchSzuletesiDatumtol { get; set; }
[Display(Name = nameof(AdminisztracioResource.SzuletesiDatum), ResourceType = typeof(AdminisztracioResource))]
public DateTime? SearchSzuletesiDatumig { get; set; }
[Display(Name = nameof(AdminisztracioResource.AnyjaNeve), ResourceType = typeof(AdminisztracioResource))]
public string SearchAnyjaNeve { get; set; }
[Display(Name = nameof(AdminisztracioResource.Osztaly), ResourceType = typeof(AdminisztracioResource))]
public int? SearchOsztalya { get; set; }
[Display(Name = nameof(AdminisztracioResource.OktatasiAzonosito), ResourceType = typeof(AdminisztracioResource))]
public string SearchOktatasiAzonosito { get; set; }
}
}

View file

@ -0,0 +1,29 @@
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class ElerhetosegekModel
{
public List<EmailElerhetosegModel> Email { get; set; }
public List<TelefonElerhetosegModel> Telefon { get; set; }
public ElerhetosegekModCO ConvertToCo()
{
return new ElerhetosegekModCO
{
Email = Email.Select(e => e.ConvertToCo()).ToList(),
Telefon = Telefon.Select(t => t.ConvertToCo()).ToList()
};
}
public void CleanFromEmptyRows()
{
// Azok a sorok nem kellenek amelyeket törölni kell, de még nem szerepel az adatbázisba.
Email = Email.Where(e => e.Id.HasValue || e.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).ToList();
Telefon = Telefon.Where(t => t.Id.HasValue || t.Status != Enums.ManualEnums.ElerhetosegStatusEnum.Deleted).ToList();
}
}
}

View file

@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
using static Kreta.Core.Constants;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class ElfelejtettJelszoModel
{
[Required(ErrorMessageResourceName = nameof(ErrorResource.FelhasznalonevMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.Felhasznalonev), ResourceType = typeof(AdminisztracioResource))]
public string BejelentkezesiNev { get; set; }
[EmailAddressExtended(ErrorMessageResourceName = nameof(ErrorResource.EMailCimFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
[StringLength(General.EmailMaximumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.EmailMax0Karakter), ErrorMessageResourceType = typeof(ErrorResource))]
[Required(ErrorMessageResourceName = nameof(ErrorResource.EmailCimMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(AdminisztracioResource.EmailCim), ResourceType = typeof(AdminisztracioResource))]
public string EmailCim { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.CaptchaMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
public string ReCaptcha { get; set; }
}
}

View file

@ -0,0 +1,64 @@
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class EmailElerhetosegModel
{
public int? Id { get; set; }
public string TextBoxId { get; set; }
public string ComboBoxId { get; set; }
public int? Tipus { get; set; }
public string EmailCim_Input { get; set; }
public string EmailCim => EmailCim_Input?.Trim();
public bool Alapertelmezett { get; set; }
public ElerhetosegStatusEnum Status { get; set; }
public bool IsPublic
{
get
{
return Tipus == (int)EmailTipusEnum.PublikusEmailcim;
}
}
public string Label
{
get
{
var label = string.Empty;
if (Tipus.HasValue)
{
var tipusString = ((EmailTipusEnum)Tipus).GetDisplayName(ClaimData.SelectedTanevID.Value);
label = $"{tipusString} {AdminisztracioResource.EmailCim.ToLower()}";
}
return label;
}
}
public EmailElerhetosegCo ConvertToCo()
{
return new EmailElerhetosegCo
{
Id = Id,
TextBoxId = TextBoxId,
Tipus = Tipus.Value,
EmailCim = EmailCim,
Alapertelmezett = Alapertelmezett,
IsPublic = IsPublic,
Status = Status
};
}
}
}

View file

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class ErtekelesModSulyListModel
{
public List<ErtekelesModSulyModel> ErtekelesModSulyList { get; set; }
}
}

View file

@ -0,0 +1,15 @@
using Kreta.BusinessLogic.Classes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class ErtekelesModSulyModel
{
public string ErtekelesModNev { get; set; }
public int ErtekelesModId { get; set; }
[KretaRange(1, 1000, ErrorMessageResourceName = nameof(TanuloErtekelesResource.SzazalekosErtekNincsAMegengedettTartomanyban), ErrorMessageResourceType = typeof(TanuloErtekelesResource))]
public int Suly { get; set; }
}
}

View file

@ -0,0 +1,33 @@
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class FejlecLablecSzerkesztoModel
{
public FejlecLablecSzerkesztoModel()
{
}
public FejlecLablecSzerkesztoModel(IntezmenyFejlecLablecCo co)
{
IsFejlecOrLablecMegjelenit = co.IsFejlecOrLablecMegjelenit;
Htmlcontent = co.HtmlContent;
Base64Image = co.Base64Img;
}
public bool IsFejlec { get; set; }
public bool IsFejlecOrLablecMegjelenit { get; set; }
public string Htmlcontent { get; set; }
public string Base64Image { get; set; }
public IntezmenyFejlecLablecCo ToCo()
{
return new IntezmenyFejlecLablecCo
{
IsFejlecOrLablecMegjelenit = this.IsFejlecOrLablecMegjelenit,
HtmlContent = this.Htmlcontent,
Base64Img = this.Base64Image
};
}
}
}

View file

@ -0,0 +1,15 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class FelHelyValasztoModel
{
[Display(Name = nameof(LoginResource.KivalaszthatoFelhelyek), ResourceType = typeof(LoginResource))]
public List<SelectListItem> FelhelyList { get; set; } = new List<SelectListItem>();
public FelHelyValasztoModel() { }
}
}

View file

@ -0,0 +1,26 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
using Kreta.Web.Areas.Alkalmazott.Models;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class FeltarAlkalmazottModel
{
[Display(Name = nameof(AdminisztracioResource.AltalanosSzerzodesiFeltetelekLetoltese), ResourceType = typeof(AdminisztracioResource))]
public string AltalanosSzerzodesiFeltetelekLetoltese { get; set; }
[Required]
[Display(Name = nameof(AdminisztracioResource.AzAdatvedelmiTajekoztatoTartalmatMegismertemEsAzAbbanFoglaltakatTudomasulVettem), ResourceType = typeof(AdminisztracioResource))]
public bool AdatvedelmiTajekoztatoElfogadasa { get; set; }
[Required]
[Display(Name = nameof(AdminisztracioResource.AzAltalanosSzerzodesiFeltetelekTartalmatMegismertemEsAzAbbanFoglaltakatTudomasulVettem), ResourceType = typeof(AdminisztracioResource))]
public bool AltalanosSzerzodesiFeltetelekElfogadasa { get; set; }
public bool IsAlkalmazottMunkakorTipusJogosult { get; set; }
public bool IsRendelkezikOktatasiAzonosotioval { get; set; }
public AlkalmazottInfoModel.AlapadatModel AlapadatModel { get; set; }
}
}

View file

@ -0,0 +1,29 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
using Kreta.Web.Models;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class FeltarGondviseloModel : Gondviselo4TAdatokModel
{
public FeltarGondviseloModel(Felhasznalo4TAdatokCo co) : base(co)
{
}
[Display(Name = nameof(AdminisztracioResource.AltalanosSzerzodesiFeltetelekLetoltese), ResourceType = typeof(AdminisztracioResource))]
public string AltalanosSzerzodesiFeltetelekLetoltese { get; set; }
[Required]
[Display(Name = nameof(AdminisztracioResource.AzAdatvedelmiTajekoztatoTartalmatMegismertemEsAzAbbanFoglaltakatTudomasulVettem), ResourceType = typeof(AdminisztracioResource))]
public bool AdatvedelmiTajekoztatoElfogadasa { get; set; }
[Required]
[Display(Name = nameof(AdminisztracioResource.AzAltalanosSzerzodesiFeltetelekTartalmatMegismertemEsAzAbbanFoglaltakatTudomasulVettem), ResourceType = typeof(AdminisztracioResource))]
public bool AltalanosSzerzodesiFeltetelekElfogadasa { get; set; }
public bool IsTorvenyesKepviselo { get; set; }
public bool IsNappaliRendszeruIskolaiOktatas { get; set; }
}
}

View file

@ -0,0 +1,33 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
using static Kreta.Core.Constants;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class GondviseloAdatokModModel
{
[Display(Name = nameof(AdminisztracioResource.JelenlegiEmailCim), ResourceType = typeof(AdminisztracioResource))]
[EmailAddressExtended(ErrorMessageResourceName = nameof(ErrorResource.EMailCimFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
[StringLength(General.EmailMaximumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.EmailMax0Karakter), ErrorMessageResourceType = typeof(ErrorResource))]
public string AktEmail { get; set; }
[Display(Name = nameof(AdminisztracioResource.UjEmailCim), ResourceType = typeof(AdminisztracioResource))]
[StringLength(General.EmailMaximumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.EmailMax0Karakter), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjEmail_Input { get; set; }
[EmailAddressExtended(ErrorMessageResourceName = nameof(ErrorResource.EMailCimFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjEmail => UjEmail_Input?.Trim();
[Display(Name = nameof(AdminisztracioResource.UjEmailCimMegerositese), ResourceType = typeof(AdminisztracioResource))]
[Compare("UjEmail_Input", ErrorMessageResourceName = nameof(ErrorResource.AKetEmailCimNemEgyezikMeg), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjEmailEllenorzes { get; set; }
[Display(Name = nameof(AdminisztracioResource.JelenlegiTelefonszam), ResourceType = typeof(AdminisztracioResource))]
public string AktTelefon { get; set; }
[Display(Name = nameof(AdminisztracioResource.UjTelefonszam), ResourceType = typeof(AdminisztracioResource))]
[PhoneExtended(ErrorMessageResourceName = nameof(ErrorResource.ATelefonszamFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjTelefon { get; set; }
}
}

View file

@ -0,0 +1,36 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
using Kreta.Web.Models;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class GondviseloJelszoIgenyloModel : CimElerhetosegModel
{
public bool AdatvedelmiTajekozatatoCheck { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.CaptchaMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
public string ReCaptcha { get; set; }
public GondviseloJelszoIgenyloCo ConvertToCo()
{
var co = new GondviseloJelszoIgenyloCo();
co.Ajto = Ajto;
co.Emelet = Emelet;
co.GondviseloEmail = Emailcim;
co.EmailTipusId = EmailTipus;
co.GondviseloNev = GondviseloNev_JelszoIgenylo;
co.Hazszam = Hazszam;
co.HelysegNev = HelysegNev_Str;
co.Iranyitoszam = Iranyitoszam_Str;
co.KozteruletNev = KozteruletNev;
co.KozteruletTipusNev = KozteruletTipus_Str;
co.OktatasiAzonosito = OktatasiAzonosito_JelszoIgenylo;
co.Orszag = Orszag;
co.RokonsagiFok = RokonsagiFok_JelszoIgenylo;
co.CimTipus = CimTipus;
return co;
}
}
}

View file

@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class HelyettesitesBevitelModel : IValidatableObject
{
public int HelyettesitesBevitelCalendarEventId { get; set; }
public int? HelyettesitesBevitelHelyettesitesId { get; set; }
public int? HelyettesitesBevitelGroupId { get; set; }
public CalendarOraTypeEnum HelyettesitesBevitelCalendarOraType { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(CommonResource.Tanar), ResourceType = typeof(CommonResource))]
public int? HelyettesitesBevitelTanarId { get; set; }
[Display(Name = nameof(OrarendResource.JelenlegiHelyettesito), ResourceType = typeof(OrarendResource))]
public string HelyettesitesBevitelTanarNev { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(OrarendResource.HelyettesitesTipusa), ResourceType = typeof(OrarendResource))]
public int HelyettesitesBevitelHelyettesitesTipusId { get; set; }
[Display(Name = nameof(OrarendResource.OraKezdete), ResourceType = typeof(OrarendResource))]
public DateTime HelyettesitesBevitelOraKezdeteDate { get; set; }
[Display(Name = nameof(OrarendResource.OraKezdete), ResourceType = typeof(OrarendResource))]
public string HelyettesitesBevitelOraKezdeteDateText => HelyettesitesBevitelOraKezdeteDate.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds);
[Display(Name = nameof(OrarendResource.OraVege), ResourceType = typeof(OrarendResource))]
public DateTime HelyettesitesBevitelOraVegeDate { get; set; }
[Display(Name = nameof(OrarendResource.OraVege), ResourceType = typeof(OrarendResource))]
public string HelyettesitesBevitelOraVegeDateText => HelyettesitesBevitelOraVegeDate.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds);
[MaxLength(500, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(OrarendResource.HelyettesitesOka), ResourceType = typeof(OrarendResource))]
public string HelyettesitesBevitelHelyettesitesOka { get; set; }
public int HelyettesitesBevitelHelyettesitesGyakorisagTipus { get; set; }
public string HelyettesitesTitle { get; set; }
[Display(Name = nameof(OrarendResource.TartosHelyettesitesVege), ResourceType = typeof(OrarendResource))]
public DateTime? HelyettesitesBevitelTartosHelyettesitesVegeDate { get; set; }
public List<SelectListItem> HelyettesitesTipusList => FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HelyettesitesTipus, ClaimData.SelectedTanevID.Value).ToSelectListItemList(selectedValue: (int)HelyettesitesTipusEnum.szakszeru_helyettesites);
public List<SelectListItem> HelyettesitesGyakorisagTipusList => EnumExtensions.EnumToDictionary<HelyettesitesGyakorisagTipusEnum>(ClaimData.SelectedTanevID.Value).ToSelectListItemList(selectedValue: (int)HelyettesitesGyakorisagTipusEnum.Egyedi);
public List<SelectListItem> HelyettesitesOsztalybanSzakosTanarList { get; set; }
public List<SelectListItem> HelyettesitesNemOsztalybanSzakosTanarList { get; set; }
public List<SelectListItem> HelyettesitesOsztalybanNemSzakosTanarList { get; set; }
public List<SelectListItem> HelyettesitesNemOsztalybanNemSzakosTanarList { get; set; }
public List<SelectListItem> OsszevonasOsztalybanSzakosTanarList { get; set; }
public List<SelectListItem> OsszevonasNemOsztalybanSzakosTanarList { get; set; }
public List<SelectListItem> OsszevonasOsztalybanNemSzakosTanarList { get; set; }
public List<SelectListItem> OsszevonasNemOsztalybanNemSzakosTanarList { get; set; }
public List<SelectListItem> FelugyeletTanarList { get; set; }
public List<SelectListItem> OsszesTanarList { get; set; }
public bool IsTulora { get; set; }
public bool IsTuloraMentes { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (HelyettesitesBevitelHelyettesitesGyakorisagTipus == (int)HelyettesitesGyakorisagTipusEnum.Tartos)
{
DateTime minimumDate;
DateTime maximumDate;
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
minimumDate = helper.GetElsoTanitasiNapDate();
if (HelyettesitesBevitelOraKezdeteDate.Date > minimumDate)
{
minimumDate = HelyettesitesBevitelOraKezdeteDate.Date;
}
maximumDate = helper.GetUtolsoTanitasiNapDate();
if (HelyettesitesBevitelTartosHelyettesitesVegeDate.HasValue)
{
var minOk = HelyettesitesBevitelTartosHelyettesitesVegeDate >= minimumDate;
var maxOk = HelyettesitesBevitelTartosHelyettesitesVegeDate <= maximumDate;
if (!minOk || !maxOk)
{
yield return new ValidationResult(string.Format(OrarendResource.ATartosHelyettesitesVegdatumaCsakKozeEshet, minimumDate.ToString(Core.Constants.ToStringPattern.HungarianDate), maximumDate.ToString(Core.Constants.ToStringPattern.HungarianDate)));
}
}
else
{
yield return new ValidationResult(string.Format(CommonResource.Required, OrarendResource.TartosHelyettesitesVege));
}
}
}
}
public class NemMegtartottHelyettesitesBevitelModel
{
public int? HelyettesitesBevitelCalendarEventId { get; set; }
public DateTime? HelyettesitesBevitelOraKezdeteDate { get; set; }
public DateTime? HelyettesitesBevitelOraVegeDate { get; set; }
public string HelyettesitesBevitelHelyettesitesOka { get; set; }
}
}

View file

@ -0,0 +1,68 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class HelyettesitesInfoModel
{
[Display(Name = nameof(OrarendResource.Datum), ResourceType = typeof(OrarendResource))]
public string Datum { get; set; }
[Display(Name = nameof(OrarendResource.OraszamIdopont), ResourceType = typeof(OrarendResource))]
public int? Oraszam { get; set; }
[Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
public string HetNapja { get; set; }
[Display(Name = nameof(OrarendResource.Hetirend), ResourceType = typeof(OrarendResource))]
public string Hetirend { get; set; }
[Display(Name = nameof(OrarendResource.Foglalkozas), ResourceType = typeof(OrarendResource))]
public string Foglalkozas { get; set; }
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
public string OsztalyCsoport { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public string Tantargy { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitoPedagogus), ResourceType = typeof(AdminisztracioResource))]
public string Tanar { get; set; }
[Display(Name = nameof(OrarendResource.Helyiseg), ResourceType = typeof(OrarendResource))]
public string Terem { get; set; }
[Display(Name = nameof(OrarendResource.Megtartott), ResourceType = typeof(OrarendResource))]
public string Megtartott { get; set; }
[Display(Name = nameof(OrarendResource.Sorszamozott), ResourceType = typeof(OrarendResource))]
public string Sorszamozando { get; set; }
[Display(Name = nameof(OrarendResource.TanitasiOraKezdete), ResourceType = typeof(OrarendResource))]
public string OraKezdete { get; set; }
[Display(Name = nameof(OrarendResource.TanitasiOraVege), ResourceType = typeof(OrarendResource))]
public string OraVege { get; set; }
[Display(Name = nameof(OrarendResource.TanitasiOraTemaja), ResourceType = typeof(OrarendResource))]
public string Tema { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitesOka), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitesOka { get; set; }
[Display(Name = nameof(OrarendResource.HaziFeladat), ResourceType = typeof(OrarendResource))]
public string HaziFeladat { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitesTipusa), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitesTipusa { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitesElrendelesenekIdopontja), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitesElrendelesenekIdopontja { get; set; }
[Display(Name = nameof(AdminisztracioResource.NaplozasIdopontja), ResourceType = typeof(AdminisztracioResource))]
public string NaplozasIdopontja { get; set; }
[Display(Name = nameof(AdminisztracioResource.LegutobbiModositasIdopontja), ResourceType = typeof(AdminisztracioResource))]
public string LegutobbiModositasIdopontja { get; set; }
}
}

View file

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.Resources;
using Kreta.Web.Helpers.TabStrip;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class HelyettesitesekKezeleseModel
{
public HelyettesitesekKezeleseModel()
{
TanarList = new List<SelectListItem>();
TabList = new List<TabStripItemModel>();
}
[Display(Name = nameof(CommonResource.Tanar), ResourceType = typeof(CommonResource))]
public int? Tanar { get; set; }
public List<SelectListItem> TanarList { get; set; }
public string HetirendJson { get; set; }
public string NaptariHetekHetirendJson { get; set; }
public int TanarId { get; set; }
public List<TabStripItemModel> TabList { get; set; }
public TimeSpan CalendarMinTime { get; set; }
public TimeSpan CalendarMaxTime { get; set; }
public TimeSpan CsengetesiRendMinTime { get; set; }
public TimeSpan CsengetesiRendMaxTime { get; set; }
}
public class HelyettesitesekKezeleseOrarendModel
{
public int Index { get; set; }
public string FullCalendarId => "FullCalendar-" + Index;
}
}

View file

@ -0,0 +1,91 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class HelyettesitesekListajaGridModel : IKretaIdentity
{
public const string HelyettesitesekListajaExportAttributeId = nameof(HelyettesitesekListajaExportAttributeId);
public HelyettesitesekListajaGridModel()
{
}
public HelyettesitesekListajaGridModel(HelyettesitesItemCo itemCo)
{
ID = itemCo.Id.ToString();
HelyettesitesDatum = itemCo.HelyettesitesDatum.Value;
Ora = itemCo.Ora.ToString();
Helyettesitett = itemCo.Helyettesitett;
HelyettesitettElotagNelkul = itemCo.HelyettesitettElotagNelkul ?? itemCo.Helyettesitett;
HelyettesitesOka = itemCo.HelyettesitesOka;
Helyettesito = itemCo.Helyettesito;
Megjegyzes = itemCo.Megjegyzes;
HelyettesitoElotagNelkul = itemCo.HelyettesitoElotagNelkul ?? itemCo.Helyettesito;
OsztalyCsoport = itemCo.OsztalyCsoport;
Tantargy = itemCo.Tantargy;
HelyettesitesTipusNev = itemCo.HelyettesitesTipusNev;
IsNaplozottText = itemCo.IsNaplozottText;
IsNaplozott = itemCo.IsNaplozott;
IsOnlineOraText = itemCo.IsOnlineOraText;
}
public string ID { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 00, nameof(HelyettesitesekListajaResource.HelyettesitesDatuma), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.HelyettesitesDatuma), ResourceType = typeof(AdminisztracioResource))]
public DateTime HelyettesitesDatum { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 01, nameof(HelyettesitesekListajaResource.Ora), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.Ora), ResourceType = typeof(AdminisztracioResource))]
public string Ora { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 02, nameof(HelyettesitesekListajaResource.HelyettesitettPedagogus), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.HelyettesitettPedagogus), ResourceType = typeof(AdminisztracioResource))]
public string Helyettesitett { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitettPedagogus), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitettElotagNelkul { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 03, nameof(HelyettesitesekListajaResource.HelyettesitesOka), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.HelyettesitesOka), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitesOka { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 06, nameof(HelyettesitesekListajaResource.HelyettesitoPedagogus), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.HelyettesitoPedagogus), ResourceType = typeof(AdminisztracioResource))]
public string Helyettesito { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 04, nameof(HelyettesitesekListajaResource.Megjegyzes), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.Megjegyzes), ResourceType = typeof(AdminisztracioResource))]
public string Megjegyzes { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitoPedagogus), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitoElotagNelkul { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 07, nameof(HelyettesitesekListajaResource.OsztályCsoport), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.OsztalyCsoport), ResourceType = typeof(AdminisztracioResource))]
public string OsztalyCsoport { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 08, nameof(HelyettesitesekListajaResource.Tantargy), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.Tantargy), ResourceType = typeof(AdminisztracioResource))]
public string Tantargy { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 05, nameof(HelyettesitesekListajaResource.HelyettesitesTipusa), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.HelyettesitesTipusa), ResourceType = typeof(AdminisztracioResource))]
public string HelyettesitesTipusNev { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 09, nameof(HelyettesitesekListajaResource.Naplozott), typeof(HelyettesitesekListajaResource))]
[Display(Name = nameof(AdminisztracioResource.Naplozott), ResourceType = typeof(AdminisztracioResource))]
public string IsNaplozottText { get; set; }
public bool IsNaplozott { get; set; }
[SimpleExportColumn(HelyettesitesekListajaExportAttributeId, 10, nameof(OrarendResource.OnlineOra), typeof(OrarendResource))]
public string IsOnlineOraText { get; set; }
}
}

View file

@ -0,0 +1,65 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class HelyettesitesekListajaSearchModel
{
[Display(Name = nameof(OsztalyCsoportResource.EllatottKoznevelesiFeladatTipus), ResourceType = typeof(OsztalyCsoportResource))]
public int? FeladatKategoriaId { get; set; }
[Display(Name = nameof(CommonResource.Feladatellatasihely), ResourceType = typeof(CommonResource))]
public int? FeladatEllatasiHelyId { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitesDatuma), ResourceType = typeof(AdminisztracioResource))]
public DateTime? HelyettesitesDatumaTolSearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitesDatuma), ResourceType = typeof(AdminisztracioResource))]
public DateTime? HelyettesitesDatumaIgSearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitettPedagogus), ResourceType = typeof(AdminisztracioResource))]
public int? HelyettesitettTanarSearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitoPedagogus), ResourceType = typeof(AdminisztracioResource))]
public int? HelyettesitoTanarSearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.OsztalyCsoport), ResourceType = typeof(AdminisztracioResource))]
public int? OsztalyCsoportSearch { get; set; }
[Display(Name = nameof(OrarendResource.KapcsolodoCsoportok), ResourceType = typeof(OrarendResource))]
public bool KellKapcsolodoCsoportokSearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.Tantargy), ResourceType = typeof(AdminisztracioResource))]
public int? TantargySearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.HelyettesitesTipusa), ResourceType = typeof(AdminisztracioResource))]
public int? HelyettesitesTipusaSearch { get; set; }
[Display(Name = nameof(AdminisztracioResource.Naplozott), ResourceType = typeof(AdminisztracioResource))]
public int? NaplozottSearch { get; set; }
[Display(Name = nameof(OrarendResource.OnlineOra), ResourceType = typeof(OrarendResource))]
public int? IsOnlineOra { get; set; }
public HelyettesitesekListajaSearchCO ConvertToCO()
{
return new HelyettesitesekListajaSearchCO
{
FeladatEllatasiHelyId = FeladatEllatasiHelyId,
FeladatKategoriaId = FeladatKategoriaId,
HelyettesitesDatumaTolSearch = HelyettesitesDatumaTolSearch,
HelyettesitesDatumaIgSearch = HelyettesitesDatumaIgSearch,
HelyettesitettTanarSearch = HelyettesitettTanarSearch,
HelyettesitesTipusaSearch = HelyettesitesTipusaSearch,
HelyettesitoTanarSearch = HelyettesitoTanarSearch,
NaplozottSearch = NaplozottSearch,
OsztalyCsoportSearch = OsztalyCsoportSearch,
TantargySearch = TantargySearch,
IsKellKapcsolodoCsoportokSearch = KellKapcsolodoCsoportokSearch,
IsOnlineOra = IsOnlineOra
};
}
}
}

View file

@ -0,0 +1,49 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
using static Kreta.Core.Constants;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class JelszoValtoztatoModel
{
public bool IsSzulDatumValidacio { get; set; }
[KretaRequiredIf("IsSzulDatumValidacio", true, ErrorMessageResourceName = nameof(ErrorResource.TanuloSzuletesiDatumMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(LoginResource.TanuloSzuletesiDatum), ResourceType = typeof(LoginResource))]
public DateTime? TanuloSzuletesiDatum { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.JelszoMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(LoginResource.UjJelszo), ResourceType = typeof(LoginResource))]
[DataType(DataType.Password)]
[StringLength(General.JelszoMaximumKarakterekSzama, MinimumLength = General.JelszoMinimumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.AJelszonakMin0Max0KarakterbolKellAllnia), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjJelszo { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.AzIsmeteltJelszoNemEgyezikMegAJelszoval), ErrorMessageResourceType = typeof(ErrorResource))]
[Display(Name = nameof(LoginResource.UjJelszoMegerositese), ResourceType = typeof(LoginResource))]
[DataType(DataType.Password)]
[StringLength(General.JelszoMaximumKarakterekSzama, MinimumLength = General.JelszoMinimumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.AJelszonakMin0Max0KarakterbolKellAllnia), ErrorMessageResourceType = typeof(ErrorResource))]
[Compare("UjJelszo", ErrorMessageResourceName = nameof(ErrorResource.JelszoNemEgyezikMeg), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjJelszoMegerositese { get; set; }
public string ErrorMessage { get; set; }
public string Guid { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.CaptchaMegadasaKotelezo), ErrorMessageResourceType = typeof(ErrorResource))]
public string ReCaptcha { get; set; }
public JelszoValtoztatoCo ConvertToCo()
{
var co = new JelszoValtoztatoCo();
co.TanuloSzuletesiDatum = TanuloSzuletesiDatum;
co.UjJelszo = UjJelszo;
co.Guid = Guid;
co.IsSzulDatumValidacio = IsSzulDatumValidacio;
return co;
}
}
}

View file

@ -0,0 +1,26 @@
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class KIRImportModel
{
public string OmAzonosito { get; set; }
public string FelhasznaloNev { get; set; }
public string KirToken { get; set; }
[KretaDisplayName(4598)] //Telephely
[KretaRequired(StringResourcesId = 4599)] //Telephely megadása kötelező
public int? TelephelyKod { get; set; }
public List<SelectListItem> TelephelyList { get; set; }
public int? TanevId { get; set; }
public int? FeladatellatasiHelyId { get; set; }
}
}

View file

@ -0,0 +1,20 @@
using Kreta.BusinessLogic.Classes;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class KIRLoginModel
{
[KretaRequired(StringResourcesId = 2332)] /*OM azonosító megadása kötelező*/
[KretaDisplayName(474)] /*OM azonosító*/
public string OmAzonosito { get; set; }
[KretaRequired(StringResourcesId = 3864)] /*A felhasználónév megadása kötelező*/
[KretaDisplayName(4787)] /*KIR Felhasználónév*/
public string FelhasznaloNev { get; set; }
[KretaRequired(StringResourcesId = 4555)] /*Jelszó megadása kötelező*/
[KretaDisplayName(4788)] /*KIR Jelszó*/
public string Jelszo { get; set; }
}
}

View file

@ -0,0 +1,26 @@
using Kreta.BusinessLogic.Interfaces;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class KIRTanarImportGridModel : IKretaIdentity
{
[KretaDisplayName(1359)]/*Sor*/
public string ID { get; set; }
[KretaDisplayName(32)]/*Oktatási azonosító*/
public string OktatasiAzonosito { get; set; }
[KretaDisplayName(108)]/*Név*/
public string OktatoNeve { get; set; }
[KretaDisplayName(239)]/*Anyja neve*/
public string AnyjaNeve { get; set; }
[KretaDisplayName(41)]/*Születési hely*/
public string SzuletesiHely { get; set; }
[KretaDisplayName(42)]/*Születési idő*/
public string SzuletesiIdo { get; set; }
}
}

View file

@ -0,0 +1,32 @@
using Kreta.BusinessLogic.Interfaces;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class KIRTanuloImportGridModel : IKretaIdentity
{
[KretaDisplayName(1359)]/*Sor*/
public string ID { get; set; }
[KretaDisplayName(32)]/*Oktatási azonosító*/
public string OktatasiAzonosito { get; set; }
[KretaDisplayName(108)]/*Név*/
public string TanuloNeve { get; set; }
[KretaDisplayName(239)]/*Anyja neve*/
public string AnyjaNeve { get; set; }
[KretaDisplayName(41)]/*Születési hely*/
public string SzuletesiHely { get; set; }
[KretaDisplayName(42)]/*Születési idő*/
public string SzuletesiIdo { get; set; }
[KretaDisplayName(334)]/*Tankötelezett*/
public bool Tankotelezett { get; set; }
[KretaDisplayName(379)]/*Osztály*/
public string Osztaly { get; set; }
}
}

View file

@ -0,0 +1,78 @@
using System.Collections.Generic;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class KirStatTable
{
public string TablazatAzonosito { get; set; }
public List<string> KirStatTaroltEljarasList { get; set; }
public string ContentUrl { get; set; }
}
public class KirStatTableList
{
//Ehhez a dictionaryhoz kell hozzáadni a tblázat nevét amihez elkészültek a tárolt eljárások
// A value az url-t tartalmazza default be van állítva: "/Kreta.Web/Riportok/KirStat/Load_Partial"
//csak speciális esetben szükséges módosítani
public Dictionary<string, string> tablazatLista = new Dictionary<string, string>()
{
{"a01t01","" },
{"a01t03","" },
{"a01t07","" },
//{"a01t08","" },
{"a01t60","" },
{"a01t88","" },
{"a02t09","" },
{"a02t10","" },
{"a02t14","" },
{"a02t15","" },
{"a02t48","" },
//{"a02t57","" },
//{"a02t59","" },
{"a02t61","" },
//{"a02t62","" },
{"a04t16","" },
{"a04t20","" },
{"a04t21","" },
{"a04t63","" },
//{"a04t64","" },
{"a04t70","" },
//{"a04t92","" },
//{"a04t93","" },
//{"a04t101","" },
//{"a04t102","" }
};
public List<KirStatTable> kirStatTableList { get; set; }
public List<string> ContentUrlList { get; set; }
public KirStatTableList(string loadPartialUrl)
{
ContentUrlList = new List<string>();
kirStatTableList = new List<KirStatTable>();
foreach (var item in tablazatLista)
{
kirStatTableList.Add(
new KirStatTable()
{
TablazatAzonosito = item.Key,
ContentUrl = loadPartialUrl + item.Value
});
}
foreach (var item in kirStatTableList)
{
if (!item.ContentUrl.Contains("/?id="))
{
ContentUrlList.Add(item.ContentUrl + "/?id=" + item.TablazatAzonosito);
}
else
{
ContentUrlList.Add(item.ContentUrl);
}
}
}
}
}

View file

@ -0,0 +1,36 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class LoginModel
{
[KretaDisplayName(3)] /*Felhasználónév*/
public string UserName { get; set; }
[KretaDisplayName(2)] /*Jelszó*/
public string Password { get; set; }
public string IntezmenyNeve { get; set; }
public string IntezmenyOMkod { get; set; }
public bool LejartLicence { get; set; }
public bool CsokkentettGondviseloEnable { get; set; }
public string IdpLogoutUrl { get; set; }
public string NextUpdateHeader { get; set; }
public string NextUpdateMessage { get; set; }
[Required(ErrorMessageResourceName = nameof(ErrorResource.ABelepeshezACaptchaKozetelezo), ErrorMessageResourceType = typeof(ErrorResource))]
public string ReCaptcha { get; set; }
public bool ReCaptchaIsEnabled { get; set; }
public bool IsSzirIntezmeny { get; set; }
public bool IsArchivIntezmeny { get; set; }
}
}

View file

@ -0,0 +1,20 @@
using Kreta.BusinessLogic.Classes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class LoginResultModel
{
public string ErrorCode { get; set; }
public string ErrorMessage { get; set; }
public bool Success { get; set; }
public string WarningMessage { get; internal set; }
public bool ReCaptchaIsEnabled => FailedLoginCounter >= ApplicationData.ReCaptchaIsEnabledCounter;
public int? FailedLoginCounter { get; set; }
}
}

View file

@ -0,0 +1,17 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
using Kreta.Web.Attributes;
using static Kreta.Core.Constants;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class LostPasswordModel
{
[EmailAddressExtended(ErrorMessageResourceName = nameof(ErrorResource.EMailCimFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
[StringLength(General.EmailMaximumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.EmailMax0Karakter), ErrorMessageResourceType = typeof(ErrorResource))]
[KretaDisplayName(1829)]//Adja meg a regisztrációnál használt e-mail címét!
public string Email { get; set; }
}
}

View file

@ -0,0 +1,56 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class NevOktLeNemKotottMunkaidoGridModel : IKretaIdentity
{
public const string NevOktLeNemKotottMunkaidoExportAttributeId = nameof(NevOktLeNemKotottMunkaidoExportAttributeId);
public NevOktLeNemKotottMunkaidoGridModel()
{
}
public NevOktLeNemKotottMunkaidoGridModel(NevOktLeNemKotottMunkaidoItemCO co)
{
ID = co.ID.ToString();
Datum = co.Datum.Value;
Kezdete = co.Kezdete.Value;
Vege = co.Vege.Value;
TanarId = co.TanarId;
TanarNeve = co.TanarNeve;
KategoriaId = co.KategoriaId;
KategoriaNeve = co.KategoriaNeve;
RogzitesDatuma = co.RogzitesDatuma.Value;
Megtartott = co.Megtartott;
}
public string ID { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Datum), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
[SimpleExportColumn(NevOktLeNemKotottMunkaidoExportAttributeId, 00, nameof(NevOktLeNemKotottMunkaidoResource.Datum), typeof(NevOktLeNemKotottMunkaidoResource), DateTimeToStringPattern = Core.Constants.ToStringPattern.HungarianDate)]
public DateTime Datum { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Kezdete), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
[SimpleExportColumn(NevOktLeNemKotottMunkaidoExportAttributeId, 01, nameof(NevOktLeNemKotottMunkaidoResource.Kezdete), typeof(NevOktLeNemKotottMunkaidoResource), DateTimeToStringPattern = Core.Constants.ToStringPattern.HungarianTime)]
public DateTime Kezdete { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Vege), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
[SimpleExportColumn(NevOktLeNemKotottMunkaidoExportAttributeId, 02, nameof(NevOktLeNemKotottMunkaidoResource.Vege), typeof(NevOktLeNemKotottMunkaidoResource), DateTimeToStringPattern = Core.Constants.ToStringPattern.HungarianTime)]
public DateTime Vege { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Tanar), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public int TanarId { get; set; }
[SimpleExportColumn(NevOktLeNemKotottMunkaidoExportAttributeId, 03, nameof(NevOktLeNemKotottMunkaidoResource.Tanar), typeof(NevOktLeNemKotottMunkaidoResource))]
public string TanarNeve { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Kategoria), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public int KategoriaId { get; set; }
[SimpleExportColumn(NevOktLeNemKotottMunkaidoExportAttributeId, 04, nameof(NevOktLeNemKotottMunkaidoResource.Kategoria), typeof(NevOktLeNemKotottMunkaidoResource))]
public string KategoriaNeve { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.RogzitesDatuma), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
[SimpleExportColumn(NevOktLeNemKotottMunkaidoExportAttributeId, 05, nameof(NevOktLeNemKotottMunkaidoResource.RogzitesDatuma), typeof(NevOktLeNemKotottMunkaidoResource), DateTimeToStringPattern = Core.Constants.ToStringPattern.HungarianDate)]
public DateTime RogzitesDatuma { get; set; }
public bool Megtartott { get; set; }
}
}

View file

@ -0,0 +1,27 @@
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class NevOktLeNemKotottMunkaidoInfoModel
{
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Kezdete), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string Kezdete { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Vege), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string Vege { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Megjegyzes), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string Megjegyzes { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Megtartott), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string Megtartott { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Kategoria), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string Kategoria { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Hetirend), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string Hetirend { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.NaplozottMegjegyzes), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string NaplozottMegjegyzes { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Tanar), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string TanarNeve { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Tulajdonos), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public string TulajdonosNeve { get; set; }
}
}

View file

@ -0,0 +1,55 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class NevOktLeNemKotottMunkaidoSearchModel
{
[Display(Name = nameof(OsztalyCsoportResource.EllatottKoznevelesiFeladatTipus), ResourceType = typeof(OsztalyCsoportResource))]
public int? FeladatKategoriaId { get; set; }
[Display(Name = nameof(CommonResource.Feladatellatasihely), ResourceType = typeof(CommonResource))]
public int? FeladatEllatasiHelyId { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Datum), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public DateTime? DatumTol { get; set; }
public DateTime? DatumIg { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Kezdete), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public DateTime? KezdeteTol { get; set; }
public DateTime? KezdeteIg { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Vege), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public DateTime? VegeTol { get; set; }
public DateTime? VegeIg { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Tanar), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public int? TanarId { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.Kategoria), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public int? Kategoria { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.RogzitesDatuma), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public DateTime? RogzitesDatumaTol { get; set; }
[Display(Name = nameof(NevOktLeNemKotottMunkaidoResource.ToroltTevekenysegek), ResourceType = typeof(NevOktLeNemKotottMunkaidoResource))]
public int? IsToroltTevekenysegek { get; set; }
public DateTime? RogzitesDatumaIg { get; set; }
public NevOktLeNemKotottMunkaidoSearchCO ConvertToCo()
{
return new NevOktLeNemKotottMunkaidoSearchCO
{
FeladatKategoriaId = this.FeladatKategoriaId,
FeladatEllatasiHelyId = this.FeladatEllatasiHelyId,
DatumTol = this.DatumTol,
DatumIg = this.DatumIg,
KezdeteTol = this.KezdeteTol,
KezdeteIg = this.KezdeteIg,
VegeTol = this.VegeTol,
VegeIg = this.VegeIg,
TanarId = this.TanarId,
Kategoria = this.Kategoria,
RogzitesDatumaTol = this.RogzitesDatumaTol,
RogzitesDatumaIg = this.RogzitesDatumaIg,
IsToroltTevekenysegek = this.IsToroltTevekenysegek
};
}
}
}

View file

@ -0,0 +1,11 @@
using Nexius.IdentityProvider.Model.External.V1;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class NexiusListItemModel
{
public Course Course { get; set; }
public CourseResult CourseResult { get; set; }
}
}

View file

@ -0,0 +1,34 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class OracsereModel
{
public OracsereModel()
{
}
[Required(ErrorMessageResourceName = nameof(OrarendResource.TanarOracserereValaszthatoOraiKotelezo), ErrorMessageResourceType = typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.TanarOracserereValaszthatoOrai), ResourceType = typeof(OrarendResource))]
public int? OracsereOrarendiOraId { get; set; }
[Required(ErrorMessageResourceName = nameof(OrarendResource.OracsereDatumaKotelezo), ErrorMessageResourceType = typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.OracsereOrarendiOraDatum), ResourceType = typeof(OrarendResource))]
public DateTime? OracsereOrarendiOraDatum { get; set; }
public int CalendarOrarendiOraId { get; set; }
public DateTime? CalendarOrarendiOraDatum { get; set; }
public string HelyettesitesreKivalasztottTanarNeve { get; set; }
public bool IsPrevalidation { get; set; }
public bool IsTeremcsere { get; set; }
public DateTime TanevElsoNapja { get; set; }
public DateTime TanevUtolsoNapja { get; set; }
}
}

View file

@ -0,0 +1,33 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Classes;
using Kreta.Resources;
using Kreta.Web.Attributes;
using static Kreta.Core.Constants;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class ProfilModel
{
public bool JelszoValtoztatasNemLehetseges { get; set; }
[KretaRequired(StringResourcesId = 2575 /*Jelenlegi jelszó megadása kötelező!*/)]
[KretaDisplayName(1826)] /*Jelenlegi jelszó*/
[DataType(DataType.Password)]
public string JelenlegiJelszo { get; set; }
[KretaRequired(StringResourcesId = 2576 /*Új jelszó megadása kötelező!*/)]
[KretaDisplayName(1827)] /*Új jelszó*/
[DataType(DataType.Password)]
[StringLength(General.JelszoMaximumKarakterekSzama, MinimumLength = General.JelszoMinimumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.AJelszonakMin0Max0KarakterbolKellAllnia), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjJelszo { get; set; }
[KretaRequired(StringResourcesId = 2577 /*Új jelszó megerősítésének megadása kötelező!*/)]
[KretaDisplayName(1828)] /*Új jelszó megerősítése*/
[DataType(DataType.Password)]
[StringLength(General.JelszoMaximumKarakterekSzama, MinimumLength = General.JelszoMinimumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.AJelszonakMin0Max0KarakterbolKellAllnia), ErrorMessageResourceType = typeof(ErrorResource))]
[Compare("UjJelszo", ErrorMessageResourceName = nameof(ErrorResource.JelszoNemEgyezikMeg), ErrorMessageResourceType = typeof(ErrorResource))]
public string UjJelszoMegerositese { get; set; }
public bool IsElerhetosegAdatokSzerkeszthetoek { get; set; }
}
}

View file

@ -0,0 +1,498 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.Configuratiaton;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Core.Logic;
using Kreta.Enums;
using Kreta.Resources;
using Kreta.Web.Models;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class SajatAdatlapInfoModel : PanelBarChildModel
{
public SajatAdatlapInfoModel()
{
AlapAdat = new AlapAdatModel();
Gondviselo = new GondviseloModel();
TanuloIgazolvany = new TanuloIgazolvanyModel();
Felhasznalo4TAdatokModel = new Felhasznalo4TAdatokModel();
ApaczaiMentorNyugdijModel = new MentoriNyugdijModel();
}
public AlapAdatModel AlapAdat { get; set; }
public GondviseloModel Gondviselo { get; set; }
public TanuloIgazolvanyModel TanuloIgazolvany { get; set; }
public TanuloBankszamlaModel TanuloBankszamla { get; set; }
public AlkalmazottBankszamlaModel AlkalmazottBankszamla { get; set; }
public BankszamlaIgenylesModel MkbBankszamlaIgenylesModel { get; set; }
public BankszamlaIgenylesModel OtpBankszamlaIgenylesModel { get; set; }
public EgyhaztartasbanElokModel EgyhaztartasbanElokModel { get; set; }
public Felhasznalo4TAdatokModel Felhasznalo4TAdatokModel { get; set; }
public MentoriNyugdijModel ApaczaiMentorNyugdijModel { get; set; }
public bool HideControlsForApaczaiOD { get; set; }
public bool HideControlsForAlkalmazott { get; set; }
#region AlapAdat
public class AlapAdatModel
{
[Display(Name = nameof(AlkalmazottResource.OktatasiAzonosito), ResourceType = typeof(AlkalmazottResource))]
public string OktatasiAzonosito { get; set; }
[Display(Name = nameof(AlkalmazottResource.Elotag), ResourceType = typeof(AlkalmazottResource))]
public string EloTag { get; set; }
[Display(Name = nameof(AlkalmazottResource.CsaladiNev), ResourceType = typeof(AlkalmazottResource))]
public string CsaladiNev { get; set; }
[Display(Name = nameof(AlkalmazottResource.Utonev), ResourceType = typeof(AlkalmazottResource))]
public string Utonev { get; set; }
[Display(Name = nameof(AlkalmazottResource.SzuletesiElotag), ResourceType = typeof(AlkalmazottResource))]
public string SzuletesiElotag { get; set; }
[Display(Name = nameof(AlkalmazottResource.SzuletesiCsaladiNev), ResourceType = typeof(AlkalmazottResource))]
public string SzuletesiCsaladNev { get; set; }
[Display(Name = nameof(AlkalmazottResource.SzuletesiUtonev), ResourceType = typeof(AlkalmazottResource))]
public string SzuletesiUtonev { get; set; }
[Display(Name = nameof(AlkalmazottResource.AnyjaElotag), ResourceType = typeof(AlkalmazottResource))]
public string AnyjaElotag { get; set; }
[Display(Name = nameof(AlkalmazottResource.AnyjaCsaladiNeve), ResourceType = typeof(AlkalmazottResource))]
public string AnyjaCsaladiNeve { get; set; }
[Display(Name = nameof(AlkalmazottResource.AnyjaUtoneve), ResourceType = typeof(AlkalmazottResource))]
public string AnyjaUtonev { get; set; }
[Display(Name = nameof(TanuloResource.Anyanyelv), ResourceType = typeof(TanuloResource))]
public string Anyanyelv { get; set; }
[Display(Name = nameof(TanuloResource.SzuletesiOrszag), ResourceType = typeof(TanuloResource))]
public string SzuletesiOrszag { get; set; }
[Display(Name = nameof(TanuloResource.SzuletesiHely), ResourceType = typeof(TanuloResource))]
public string SzuletesiHely { get; set; }
[Display(Name = nameof(TanuloResource.SzuletesiIdo), ResourceType = typeof(TanuloResource))]
public DateTime SzuletesiIdo { get; set; }
[Display(Name = nameof(TanuloResource.SzuletesiIdo), ResourceType = typeof(TanuloResource))]
public string SzuletesiIdo_SDATE => SzuletesiIdo.ToString(Core.Constants.ToStringPattern.HungarianDateWithSpaces);
[Display(Name = nameof(TanuloResource.Allampolgarsag), ResourceType = typeof(TanuloResource))]
public string Allampolgarsag { get; set; }
[Display(Name = nameof(TanuloResource.Allampolgarsag2), ResourceType = typeof(TanuloResource))]
public string Allampolgarsag2 { get; set; }
[Display(Name = nameof(TanuloResource.IgazolvanyTipus), ResourceType = typeof(TanuloResource))]
public string IgazolvanyTipus { get; set; }
[Display(Name = nameof(TanuloResource.IgazolvanySzam), ResourceType = typeof(TanuloResource))]
public string IgazolvanySzam { get; set; }
[Display(Name = nameof(AlkalmazottResource.Felhasznalonev), ResourceType = typeof(AlkalmazottResource))]
public string BelepesiNev { get; set; }
[Display(Name = nameof(TanuloResource.Osztaly), ResourceType = typeof(TanuloResource))]
public string OsztalyNev { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.Osztalyfonok), ResourceType = typeof(OsztalyCsoportResource))]
public string OsztalyfonokNev { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.Terem), ResourceType = typeof(OsztalyCsoportResource))]
public string TeremNev { get; set; }
[Display(Name = nameof(TanuloResource.Evfolyam), ResourceType = typeof(TanuloResource))]
public string EvfolyamNev { get; set; }
}
#endregion
public class TanuloAdatModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(TanuloResource.Tanulo), ResourceType = typeof(TanuloResource))]
public string TanuloNev { get; set; }
[Display(Name = nameof(TanuloResource.OktatasiAzonosito), ResourceType = typeof(TanuloResource))]
public string OktAzon { get; set; }
[Display(Name = nameof(TanuloResource.Osztaly), ResourceType = typeof(TanuloResource))]
public string OsztalyNev { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.Osztalyfonok), ResourceType = typeof(OsztalyCsoportResource))]
public string OsztalyfonokNev { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.Terem), ResourceType = typeof(OsztalyCsoportResource))]
public string TeremNev { get; set; }
}
#region Elerhetőségek
public class ElerhetosegCimModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(TanuloResource.Tipus), ResourceType = typeof(TanuloResource))]
public string CimTipus_DNAME { get; set; }
[Display(Name = nameof(TanuloResource.Iranyitoszam), ResourceType = typeof(TanuloResource))]
public string Irsz { get; set; }
[Display(Name = nameof(TanuloResource.Helyseg), ResourceType = typeof(TanuloResource))]
public string Varos { get; set; }
[Display(Name = nameof(TanuloResource.Cim), ResourceType = typeof(TanuloResource))]
public string Cim { get; set; }
[Display(Name = nameof(TanuloResource.Kozterulet), ResourceType = typeof(TanuloResource))]
public string Kozterulet { get; set; }
[Display(Name = nameof(TanuloResource.KozteruletJellege), ResourceType = typeof(TanuloResource))]
public string KozteruletJellegeNev { get; set; }
[Display(Name = nameof(TanuloResource.Hazszam), ResourceType = typeof(TanuloResource))]
public string HazSzam { get; set; }
[Display(Name = nameof(TanuloResource.Emelet), ResourceType = typeof(TanuloResource))]
public string Emelet { get; set; }
[Display(Name = nameof(TanuloResource.Ajto), ResourceType = typeof(TanuloResource))]
public string Ajto { get; set; }
[Display(Name = nameof(TanuloResource.Alapertelmezett), ResourceType = typeof(TanuloResource))]
public bool Alapertelmezett_BOOL { get; set; }
}
public class ElerhetosegTelModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(TanuloResource.Tipus), ResourceType = typeof(TanuloResource))]
public string Tipus_DNAME { get; set; }
[Display(Name = nameof(TanuloResource.Telefonszam), ResourceType = typeof(TanuloResource))]
public string TelefonSzam { get; set; }
[Display(Name = nameof(TanuloResource.Alapertelmezett), ResourceType = typeof(TanuloResource))]
public bool Alapertelmezett_BOOL { get; set; }
}
public class ElerhetosegEmailModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(TanuloResource.Tipus), ResourceType = typeof(TanuloResource))]
public string Tipus_DNAME { get; set; }
[Display(Name = nameof(TanuloResource.EmailCim), ResourceType = typeof(TanuloResource))]
public string EmailCim { get; set; }
[Display(Name = nameof(TanuloResource.Alapertelmezett), ResourceType = typeof(TanuloResource))]
public bool Alapertelmezett_BOOL { get; set; }
}
public class TargyiEszkozModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(TanarResource.Megnevezes), ResourceType = typeof(TanarResource))]
public string Megnevezes { get; set; }
[Display(Name = nameof(TanarResource.GyariSzam), ResourceType = typeof(TanarResource))]
public string GyariSzam { get; set; }
[Display(Name = nameof(TanarResource.LeltariSzam), ResourceType = typeof(TanarResource))]
public string LeltariSzam { get; set; }
}
#endregion
public class GondviseloModel
{
[Display(Name = nameof(TanuloResource.TeljesNev), ResourceType = typeof(TanuloResource))]
public string GondviseloNeve { get; set; }
[Display(Name = nameof(TanuloResource.RokonsagiFok), ResourceType = typeof(TanuloResource))]
public string RokonsagiFok { get; set; }
[Display(Name = nameof(TanuloResource.TorvenyesKepviselo), ResourceType = typeof(TanuloResource))]
public string IsTorvenyesKepviselo { get; set; }
}
public class TanuloIgazolvanyModel
{
[Display(Name = nameof(TanuloResource.IgazolvanySzama), ResourceType = typeof(TanuloResource))]
public string Igazolvanyszam { get; set; }
[Display(Name = nameof(TanuloResource.IgazolvanyTipus), ResourceType = typeof(TanuloResource))]
public string IgazolvanyTipus { get; set; }
[Display(Name = nameof(TanuloResource.DiakigazolvanySzam), ResourceType = typeof(TanuloResource))]
public string DiakigazolvanySzam { get; set; }
public DateTime? DiakigazolvanyKelte { get; set; }
[Display(Name = nameof(TanuloResource.DiakigazolvanyKelte), ResourceType = typeof(TanuloResource))]
public string DiakigazolvanyKelte_SDATE => DiakigazolvanyKelte.ToShortDateString();
[Display(Name = nameof(TanuloResource.TajSzam), ResourceType = typeof(TanuloResource))]
public string TajSzam { get; set; }
[Display(Name = nameof(TanuloResource.AdoazonositoJel), ResourceType = typeof(TanuloResource))]
public string AdoazonositoJel { get; set; }
}
public static SajatAdatlapInfoModel ConvertTanarAdatCoToModel(TanarAdatCO co, EgyhaztartasbanElokCo egyhaztartasbanElokCo)
{
var model = new SajatAdatlapInfoModel
{
AlapAdat = new AlapAdatModel
{
OktatasiAzonosito = co.OktatasiAzonosito,
EloTag = co.Elotag,
CsaladiNev = co.MunkavallaloCsaladiNev,
Utonev = co.MunkavallaloUtonev,
AnyjaCsaladiNeve = co.AnyjaCsaladiNeve,
AnyjaUtonev = co.AnyjaUtoneve,
AnyjaElotag = co.AnyjaNeveElotag,
SzuletesiCsaladNev = co.SzuletesiCsaladiNev,
SzuletesiUtonev = co.SzuletesiUtonev,
SzuletesiElotag = co.SzuletesiNevElotag,
SzuletesiHely = co.SzuletesiHely,
SzuletesiIdo = co.SzuletesiIdo,
IgazolvanyTipus = co.IgazolvanyTipus.GetDisplayName<IgazolvanyTipusEnum>(ClaimData.SelectedTanevID.Value),
IgazolvanySzam = co.IgazolvanySzam,
BelepesiNev = co.BelepesiNev
},
AlkalmazottBankszamla = new AlkalmazottBankszamlaModel("SajatAdatlapHelper.alkalmazottBankszamlaMentesClick")
{
BankszamlaSzam = co.BankszamlaSzam,
BankszamlaTulajdonos = co.BankszamlaTulajdonos,
BankszamlaTulajdonosNeve = co.BankszamlaTulajdonosNeve,
SzamlavezetoBank = co.SzamlavezetoBank,
IsApaczaiMentor = co.IsApaczaiMentor,
},
EgyhaztartasbanElokModel = GetEgyhaztartasbanElokModel(egyhaztartasbanElokCo),
ApaczaiMentorNyugdijModel = new MentoriNyugdijModel
{
IsApaczaiMentor = co.IsApaczaiMentor,
IsNyugdijas = co.IsNyugdijas,
NyugdijKezdet = co.NyugdijKezdet,
NyugdijTipusId = co.NyugdijTipusId,
MunkaugyiAdatId = co.MunkaugyiAdatId
}
};
return model;
}
public static SajatAdatlapInfoModel ConvertTanuloAdatCoToModel(TanuloAdatCO co, BankszamlaIgenylesCo bankszamlaIgenylesCo, EgyhaztartasbanElokCo egyhaztartasbanElokCo)
{
var model = new SajatAdatlapInfoModel
{
AlapAdat = new AlapAdatModel
{
OktatasiAzonosito = co.OktatasiAzonosito,
EloTag = co.Elotag,
CsaladiNev = co.CsaladiNev,
Utonev = co.UtoNev,
AnyjaCsaladiNeve = co.AnyjaCsaladiNev,
AnyjaUtonev = co.AnyjaUtoNev,
AnyjaElotag = co.AnyjaNeveElotag,
SzuletesiCsaladNev = co.SzuletesiCsaladiNev,
SzuletesiUtonev = co.SzuletesiUtoNev,
SzuletesiElotag = co.SzuletesiNevElotag,
SzuletesiOrszag = co.SzuletesiOrszag.GetDisplayName<OrszagTipusEnum>(ClaimData.SelectedTanevID.Value),
SzuletesiHely = co.SzuletesiHely,
SzuletesiIdo = co.SzuletesiIdo,
Anyanyelv = co.Anyanyelv.GetDisplayName<AnyanyelvEnum>(ClaimData.SelectedTanevID.Value),
Allampolgarsag = co.Allampolgarsag.GetDisplayName<AllampolgarsagEnum>(ClaimData.SelectedTanevID.Value),
Allampolgarsag2 = co.Allampolgarsag2.GetDisplayName<AllampolgarsagEnum>(ClaimData.SelectedTanevID.Value),
BelepesiNev = co.BelepesiNev,
OsztalyNev = co.OsztalyNev,
EvfolyamNev = co.EvfolyamNev,
OsztalyfonokNev = co.OsztalyfonokNev,
TeremNev = co.TeremNev
},
TanuloIgazolvany = new TanuloIgazolvanyModel
{
AdoazonositoJel = co.AdoazonositoJel,
DiakigazolvanyKelte = co.DiakigazolvanyKelte,
DiakigazolvanySzam = co.DiakigazolvanySzam,
Igazolvanyszam = co.Igazolvanyszam,
IgazolvanyTipus = co.IgazolvanyTipus.GetDisplayName<IgazolvanyTipusEnum>(ClaimData.SelectedTanevID.Value),
TajSzam = co.TajSzam
},
TanuloBankszamla = new TanuloBankszamlaModel("SajatAdatlapHelper.tanuloBankszamlaMentesClick")
{
BankszamlaSzam = co.BankszamlaSzam,
BankszamlaTulajdonos = co.BankszamlaTulajdonos,
BankszamlaTulajdonosNeve = co.BankszamlaTulajdonosNeve,
SzamlavezetoBank = co.SzamlavezetoBank,
},
MkbBankszamlaIgenylesModel = GetBankszamlaIgenylesModel<IMkbBankszamlaIgenylesConfiguration>(bankszamlaIgenylesCo),
OtpBankszamlaIgenylesModel = GetBankszamlaIgenylesModel<IOtpBankszamlaIgenylesConfiguration>(bankszamlaIgenylesCo),
EgyhaztartasbanElokModel = GetEgyhaztartasbanElokModel(egyhaztartasbanElokCo),
Felhasznalo4TAdatokModel = new Felhasznalo4TAdatokModel()
{
AnyjaUtonev = co.AnyjaUtoNev,
AnyjaVezeteknev = co.AnyjaCsaladiNev,
Elotag = co.Elotag,
SzuletesiDatum = co.SzuletesiIdo,
SzuletesiHely = co.SzuletesiHely,
SzuletesiUtonev = co.SzuletesiUtoNev,
SzuletesiVezeteknev = co.SzuletesiCsaladiNev,
Utonev = co.UtoNev,
Vezeteknev = co.CsaladiNev,
},
};
return model;
}
public static SajatAdatlapInfoModel ConvertGondviseloAdatCoToModel(TanuloGondviseloCO co, Felhasznalo4TAdatokCo felhasznalo4TAdatokCo, BankszamlaIgenylesCo bankszamlaIgenylesCo, EgyhaztartasbanElokCo egyhaztartasbanElokCo)
{
var model = new SajatAdatlapInfoModel
{
AlapAdat = new AlapAdatModel
{
BelepesiNev = co.GondviseloBelepesiNeve
},
Gondviselo = new GondviseloModel
{
RokonsagiFok = co.RokonsagiFok.GetDisplayName<RokonsagiFokEnum>(ClaimData.SelectedTanevID.Value),
IsTorvenyesKepviselo = co.IsTorvenyesKepviselo.GetDisplayName(),
GondviseloNeve = co.GondviseloNeve
},
TanuloBankszamla = new TanuloBankszamlaModel("SajatAdatlapHelper.tanuloBankszamlaMentesClick")
{
BankszamlaSzam = co.TanuloBankszamlaCo.BankszamlaSzam,
BankszamlaTulajdonos = co.TanuloBankszamlaCo.BankszamlaTulajdonos,
BankszamlaTulajdonosNeve = co.TanuloBankszamlaCo.BankszamlaTulajdonosNeve,
SzamlavezetoBank = co.TanuloBankszamlaCo.SzamlavezetoBank,
IsReadonly = !co.IsTorvenyesKepviselo
},
MkbBankszamlaIgenylesModel = GetBankszamlaIgenylesModel<MkbBankszamlaIgenylesConfiguration>(bankszamlaIgenylesCo, co),
OtpBankszamlaIgenylesModel = GetBankszamlaIgenylesModel<OtpBankszamlaIgenylesConfiguration>(bankszamlaIgenylesCo, co),
EgyhaztartasbanElokModel = GetEgyhaztartasbanElokModel(egyhaztartasbanElokCo),
Felhasznalo4TAdatokModel = new Felhasznalo4TAdatokModel(felhasznalo4TAdatokCo) { IsEditable = false }
};
return model;
}
private static BankszamlaIgenylesModel GetBankszamlaIgenylesModel<T>(BankszamlaIgenylesCo bankszamlaIgenylesCo, TanuloGondviseloCO gondviselo = null) where T : IBankszamlaIgenylesConfiguration
{
bool showIgenyles = false;
string igenylesOldalUrl = string.Empty;
//NOTE: Ha az adatbátzisban az intézmény adatokban(T_INTEZMENYADATOK) be van állítva, hogy szakképző az intézmény(C_ISSZAKKEPZO = 'T'), akkor lehet csak megjeleníteni a funkciót.
// Csak az NSZFH-s intézményeknél lehet true.
if (ClaimData.IsSzakkepzoIntezmeny)
{
//NOTE: Csak abban az esetben lehet igényelni bankszámlát, ha
// - még nincs bankszámlaszáma(azaz null vagy üres string a Bankszamlaszam) és
// - a tanuló bármelyik osztálya megfelelő évfolyamú(Kreta.Core.Constants.BankszamlatIgenyelhetoTanuloOsztalyEvfolyamTipusIdList).
if (string.IsNullOrWhiteSpace(bankszamlaIgenylesCo.Bankszamlaszam) && bankszamlaIgenylesCo.IsTanuloIgenyelhetBankszamlatByOsztalyEvfolyamTipus)
{
bool isGondviselo = gondviselo != null;
//NOTE: Ha a felhasználó gondviselő, csak abban az esetben lehet igényelni bankszámlát, ha
// - törvényes képviselő.
if (isGondviselo)
{
if (gondviselo.IsTorvenyesKepviselo)
{
showIgenyles = true;
}
}
//NOTE: Ha a felhasználó tanuló, minden esetben lehet igényelni bankszámlát.
else
{
showIgenyles = true;
}
}
var bankszamlaIgenylesConfiguration = DependencyResolver.Current.GetService<T>();
//NOTE: Beállítjuk a bankszámla igénylés oldal url-jét az MKB-nak megfelelő titkosítás szerint, ha
// - meg kell jeleníteni a korábbi feltételek alapján és
// - létezik a publikus kulcs és
// - amit encrypt-álunk, az nem lesz null vagy üres string.
if (showIgenyles && File.Exists(bankszamlaIgenylesConfiguration.PublicKeyFileName))
{
string token = UrlLogic.JweEncrypt(
bankszamlaIgenylesConfiguration.PublicKeyFileName,
bankszamlaIgenylesConfiguration.PublicKeyFilePassword,
bankszamlaIgenylesCo.EgyediAzonosito);
if (!string.IsNullOrWhiteSpace(token))
{
igenylesOldalUrl = string.Format(bankszamlaIgenylesConfiguration.FormUrl, bankszamlaIgenylesCo.UrlHost, token);
}
}
//NOTE: Ha valami miatt mégsem sikerült beállítani a bankszámla igénylés oldal url-jét akkor nem jelenítjük meg az igénylés gombot.
if (string.IsNullOrWhiteSpace(igenylesOldalUrl))
{
showIgenyles = false;
}
}
var model = new BankszamlaIgenylesModel
{
ShowIgenyles = showIgenyles,
IgenylesOldalUrl = igenylesOldalUrl,
};
return model;
}
private static EgyhaztartasbanElokModel GetEgyhaztartasbanElokModel(EgyhaztartasbanElokCo co)
{
var model = new EgyhaztartasbanElokModel() { };
if (co.Sorok.Count > 0)
{
foreach (var item in co.Sorok)
{
model.Sorok.Add(new EgyhaztartasbanElokRowModel()
{
ID = item.ID,
Nev = item.Nev,
AnyjaNev = item.AnyjaNev,
SzuletesiIdo = item.SzuletesiIdo,
SzuletesiHely = item.SzuletesiHely,
Taj = item.Taj,
RokonsagiFok = item.RokonsagiFok,
Email = item.Email,
Telefon = item.Telefon
});
}
}
return model;
}
}
}

View file

@ -0,0 +1,31 @@
using Kreta.Web.Models.EditorTemplates;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class SystemSettingsModel : PanelBarBaseModel
{
public SpecialisBeallitasokModel SpecialisBeallitasokModel { get; set; }
public RendszerszintuTorlesiLehetosegekModel RendszerszintuTorlesiLehetosegekModel { get; set; }
public JuttatasBeallitasokModel JuttatasBeallitasokModel { get; set; }
public bool IsIntezmenySzakkepzoJuttatas { get; set; }
}
public class SpecialisBeallitasokModel : PanelBarBaseModel
{
}
public class RendszerszintuTorlesiLehetosegekModel : PanelBarBaseModel
{
}
public class JuttatasBeallitasokModel : PanelBarBaseModel
{
}
}

View file

@ -0,0 +1,36 @@
using System.Collections.Generic;
using Kreta.Enums;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class SzerepkorValasztoModel
{
public SzerepkorValasztoModel()
{
Roles = new List<UserRoles>();
}
public string OrganizationName { get; set; }
public string UserName { get; set; }
public string ProfilImgSrc { get; set; }
public List<UserRoles> Roles { get; set; }
public string CancelLinkText { get; set; }
public string CancelLinkAction { get; set; }
}
public class UserRoles
{
public string Name { get; set; }
public SzerepkorTipusEnum Szerepkor { get; set; }
public string LastLoggedIn { get; set; }
public bool IsActive { get; set; }
}
}

View file

@ -0,0 +1,27 @@
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.Web.Attributes;
using Kreta.Web.Models;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanarKIRImportModel : UploadFileModel
{
[KretaDisplayName(450)] /*Tanév*/
//[KretaRequired(StringResourcesId = 3823)]
public int? TanevId { get; set; }
[KretaDisplayName(90)] /*Feladatellátási hely*/
//[KretaRequired(StringResourcesId = 4920)]
public int? FeladatellatasiHelyId { get; set; }
public List<SelectListItem> FeladatellatasiHelyList { get; set; }
public List<SelectListItem> TanevLista { get; set; }
public KIRLoginModel KirLoginModel { get; set; }
public KIRImportModel KIRImportModel { get; set; }
public bool KIRImportEnabled { get; set; }
}
}

View file

@ -0,0 +1,32 @@
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanarokFeltolteseModel
{
public TanarokFeltolteseModel()
{
FeladatellatasiHelyList = new List<SelectListItem>();
TanevList = new List<SelectListItem>();
Errors = new List<string>();
}
[KretaDisplayName(450)] /*Tanév*/
[KretaRequired(StringResourcesId = 3823)]
public int? TanevId { get; set; }
[KretaDisplayName(90)] /*Feladatellátási hely*/
[KretaRequired(StringResourcesId = 1680)]
public int? FeladatellatasiHelyId { get; set; }
public List<SelectListItem> TanevList { get; set; }
public List<SelectListItem> FeladatellatasiHelyList { get; set; }
public List<string> Errors { get; set; }
}
}

View file

@ -0,0 +1,26 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanevValtasAlkalmazottTorlesGridModel : IKretaIdentity
{
public string ID { get; set; }
public int? AlkalmazottId { get; set; }
[Display(Name = nameof(AlkalmazottResource.AlkalmazottNev), ResourceType = typeof(AlkalmazottResource))]
public string AlkalmazottNev { get; set; }
[Display(Name = nameof(AlkalmazottResource.OktatasiAzonosito), ResourceType = typeof(AlkalmazottResource))]
public string OktatasiAzonosito { get; set; }
[Display(Name = nameof(AlkalmazottResource.AlkalmazasKezdete), ResourceType = typeof(AlkalmazottResource))]
public DateTime? AlkalmazasKezdete { get; set; }
[Display(Name = nameof(AlkalmazottResource.AlkalmazasVege), ResourceType = typeof(AlkalmazottResource))]
public DateTime? AlkalmazasVege { get; set; }
}
}

View file

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class AktivTanevValtasaModel
{
public int ID { get; set; }
public int? KiNemSoroltTanulokOsztaly { get; set; }
public int? KiNemSoroltTanulokCsoport { get; set; }
public int? BeNemSoroltNebulok { get; set; }
public bool LejartLicence { get; set; }
public int? VanTorlendoAlkalmazott { get; set; }
public int NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok { get; set; }
public List<string> AlkalmazottakAlapertekekkel { get; set; }
}
public class AktivTanevValtasaItemModel
{
public string Name { get; set; }
public string Content { get; set; }
public AdminDashboardTipusEnum Type { get; set; }
public DateTime Date { get; set; }
}
}

View file

@ -0,0 +1,32 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TantargyFelosztasGridModel : IKretaIdentity
{
[KretaDisplayName(379)]
public string Osztaly { get; set; }
[KretaDisplayName(1619)]
public string Csoport { get; set; }
[Display(Name = nameof(AdminisztracioResource.Tantargy), ResourceType = typeof(AdminisztracioResource))]
public string Tantargy { get; set; }
[KretaDisplayName(274)]
public string Oraszam { get; set; }
[KretaDisplayName(30)]
public string Tanar { get; set; }
[KretaDisplayName(3871)]
public DateTime? TanarSzuletesiDatum { get; set; }
[KretaDisplayName(1359)]
public string ID { get; set; }
}
}

View file

@ -0,0 +1,126 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Resources;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloErtekelesMondatbankItemModel : BaseTanuloErtekelesMondatbankItemModel
{
[JsonConstructor]
public TanuloErtekelesMondatbankItemModel(bool mustSetSelectListItemLists = true)
: base(mustSetSelectListItemLists)
{
}
public TanuloErtekelesMondatbankItemModel(TanuloErtekelesMondatbankItemCo co)
{
RovidNev = co.RovidNev;
Szoveg = co.Szoveg;
SetSelectListItemLists(this);
TanuloErtekelesTipusId = co.TanuloErtekelesTipusId.IsEntityId() ? co.TanuloErtekelesTipusId.Value : 0;
EvfolyamTipusId = co.EvfolyamTipusId.IsEntityId() ? co.EvfolyamTipusId.Value : 0;
SzovegNemet = co.SzovegNemet;
SzovegHorvat = co.SzovegHorvat;
SzovegRoman = co.SzovegRoman;
SzovegSzerb = co.SzovegSzerb;
switch (co.TipusId)
{
case (int)ErtMondatbankTipusEnum.Magatartas:
TantargyId = TanuloErtekelesMondatbankHelper.MagatartasTantargyId;
break;
case (int)ErtMondatbankTipusEnum.Szorgalom:
TantargyId = TanuloErtekelesMondatbankHelper.SzorgalomTantargyId;
break;
default:
TantargyId = co.TantargyId.IsEntityId() ? co.TantargyId.Value : 0;
break;
}
}
public int ID { get; set; }
[KretaRequired]
public override string Szoveg { get; set; }
[KretaRequired]
public override int? TanuloErtekelesTipusId { get; set; }
[KretaRequired]
public override int? EvfolyamTipusId { get; set; }
[KretaRequired]
public override int? TantargyId { get; set; }
public TanuloErtekelesMondatbankItemCo ToCo()
{
var result = new TanuloErtekelesMondatbankItemCo
{
Id = ID,
RovidNev = RovidNev,
Szoveg = Szoveg,
TanuloErtekelesTipusId = TanuloErtekelesTipusId.IsEntityId() ? TanuloErtekelesTipusId : (int?)null,
EvfolyamTipusId = EvfolyamTipusId.IsEntityId() ? EvfolyamTipusId : (int?)null,
TantargyId = TantargyId.IsEntityId() ? TantargyId : (int?)null,
TipusId = TanuloErtekelesMondatbankHelper.GetTanuloErtekelesMondatbankTipusIdByTantargyId(TantargyId),
SzovegNemet = SzovegNemet,
SzovegHorvat = SzovegHorvat,
SzovegRoman = SzovegRoman,
SzovegSzerb = SzovegSzerb,
};
return result;
}
public override ModelStateDictionary Validate()
{
var modelStateDictionary = new ModelStateDictionary();
if (!RovidNev.IsNullOrWhiteSpace() && RovidNev.Length > 3)
{
modelStateDictionary.AddModelError(nameof(RovidNev), ErrorResource.ARovidNevNemLehetHosszabbMint3Karakter);
}
// NOTE: kétszer kell minden szöveget dekódolni, mert először a control enkódolja, másodszor a http request
if (Szoveg.IsNullOrWhiteSpace())
{
modelStateDictionary.AddModelError(nameof(Szoveg), string.Format(CommonResource.Required, TanuloErtekelesResource.Szoveg));
}
else if (RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(Szoveg)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(Szoveg), string.Format(ErrorResource.ASzovegNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegNemet.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegNemet)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegNemet), string.Format(ErrorResource.ASzovegNemetNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegHorvat.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegHorvat)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegHorvat), string.Format(ErrorResource.ASzovegHorvatNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegRoman.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegRoman)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegRoman), string.Format(ErrorResource.ASzovegRomanNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegSzerb.IsNullOrWhiteSpace() && RichTextLogic.GetLegalHtmlString(System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(SzovegSzerb)), new List<string>()).Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegSzerb), string.Format(ErrorResource.ASzovegSzerbNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
return modelStateDictionary;
}
}
}

View file

@ -0,0 +1,69 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers.DokumentumHelpers;
using Kreta.Enums;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloErtekelesMondatbankItemSelectModel
{
[Display(Name = nameof(TanuloErtekelesResource.TanuloErtekelesMondatbank), ResourceType = typeof(TanuloErtekelesResource))]
public int? MondatbankSelectPopupId { get; set; }
public int MondatbankSelectPopupRowId { get; set; }
[MaxLength(3, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.RovidNev), ResourceType = typeof(TanuloErtekelesResource))]
public string MondatbankSelectPopupRovidNev { get; set; }
[KretaRequired]
[MaxLength(Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegesErtekeles), ResourceType = typeof(TanuloErtekelesResource))]
public string MondatbankSelectPopupSzoveg { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegesErtekelesNemet), ResourceType = typeof(TanuloErtekelesResource))]
public string MondatbankSelectPopupSzovegNemet { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegesErtekelesHorvat), ResourceType = typeof(TanuloErtekelesResource))]
public string MondatbankSelectPopupSzovegHorvat { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegesErtekelesRoman), ResourceType = typeof(TanuloErtekelesResource))]
public string MondatbankSelectPopupSzovegRoman { get; set; }
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
[Display(Name = nameof(TanuloErtekelesResource.SzovegesErtekelesSzerb), ResourceType = typeof(TanuloErtekelesResource))]
public string MondatbankSelectPopupSzovegSzerb { get; set; }
public int MondatbankSelectPopupTanuloErtekelesTipusId { get; set; }
public int? MondatbankSelectPopupOsztalyCsoportId { get; set; }
public int? MondatbankSelectPopupTantargyId { get; set; }
public int MondatbankSelectPopupTipusId { get; set; }
public List<SelectListItem> MondatbankItemSelectList { get; set; }
public List<TanuloErtekelesMondatbankItemModel> MondatbankItemList { get; set; }
public List<int> NemzetiDokumentumNyelvek { get; set; } = new List<int>();
public bool IsNyelviesitesActive => NemzetiDokumentumNyelvek.Any();
public bool IsNemetNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.nemet);
public bool IsHorvatNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.horvat);
public bool IsRomanNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.roman);
public bool IsSzerbNemzetiDokumentumNyelvActive => DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(NemzetiDokumentumNyelvek, AnyanyelvEnum.szerb);
}
}

View file

@ -0,0 +1,26 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloErtekelesMondatbankGridModel : IKretaIdentity
{
public string ID { get; }
[Display(Name = nameof(TanuloErtekelesResource.RovidNev), ResourceType = typeof(TanuloErtekelesResource))]
public string RovidNev { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.Szoveg), ResourceType = typeof(TanuloErtekelesResource))]
public string Szoveg { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.ErtekelesTipus), ResourceType = typeof(TanuloErtekelesResource))]
public string TanuloErtekelesTipusId_DNAME { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.EvfolyamTipus), ResourceType = typeof(TanuloErtekelesResource))]
public string EvfolyamTipusId_DNAME { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.Tantargy), ResourceType = typeof(TanuloErtekelesResource))]
public string TantargyNev { get; set; }
}
}

View file

@ -0,0 +1,55 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web.Mvc;
using Kreta.Resources;
using Kreta.Web.Areas.Adminisztracio.Helpers;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloErtekelesMondatbankSearchModel
{
[Display(Name = nameof(TanuloErtekelesResource.ErtekelesTipus), ResourceType = typeof(TanuloErtekelesResource))]
public List<int> TanuloErtekelesTipusIdList { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.EvfolyamTipus), ResourceType = typeof(TanuloErtekelesResource))]
public List<int> EvfolyamTipusIdList { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.Tantargy), ResourceType = typeof(TanuloErtekelesResource))]
public List<int> TantargyIdList { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.RovidNev), ResourceType = typeof(TanuloErtekelesResource))]
[MaxLength(3)]
public string RovidNevS { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.Szoveg), ResourceType = typeof(TanuloErtekelesResource))]
[MaxLength(4000)]
public string SzovegS { get; set; }
public List<SelectListItem> TipusList { get; set; }
public List<SelectListItem> EvfolyamTipusList { get; set; }
public List<SelectListItem> TantargyList { get; set; }
public TanuloErtekelesMondatbankSearchModel()
{
SetSelectListItemLists();
}
protected void SetSelectListItemLists()
{
var defaultList = new List<SelectListItem>
{
new SelectListItem
{
Value = "0",
Text = CommonResource.Mind
}
};
TipusList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetTipusList()).ToList();
EvfolyamTipusList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetEvfolyamTipusList()).ToList();
TantargyList = defaultList.Union(TanuloErtekelesMondatbankWebHelper.GetTantargyList()).ToList();
}
}
}

View file

@ -0,0 +1,106 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Resources;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloErtekelesMondatbankTobbesItemModel : BaseTanuloErtekelesMondatbankItemModel
{
public override string Szoveg { get; set; }
public override int? TanuloErtekelesTipusId { get; set; }
public override int? EvfolyamTipusId { get; set; }
public override int? TantargyId { get; set; }
public List<int> SelectedIdList { get; set; }
[Display(Name = nameof(TanuloErtekelesResource.RovidNevModositasa), ResourceType = typeof(TanuloErtekelesResource))]
public bool RovidNevEnabled { get; set; }
public string SelectedIdListJson
{
get => SelectedIdList == null ? string.Empty : JsonConvert.SerializeObject(SelectedIdList);
set => SelectedIdList = JsonConvert.DeserializeObject<List<int>>(value);
}
[JsonConstructor]
public TanuloErtekelesMondatbankTobbesItemModel(bool mustSetSelectListItemLists = true)
: base(mustSetSelectListItemLists)
{
RovidNevEnabled = false;
SelectedIdList = new List<int>();
}
public TanuloErtekelesMondatbankTobbesItemCo ToCo()
{
var result = new TanuloErtekelesMondatbankTobbesItemCo
{
SelectedIdList = SelectedIdList,
RovidNev = RovidNevEnabled ? string.IsNullOrWhiteSpace(RovidNev) ? "sz" : RovidNev : null,
Szoveg = !string.IsNullOrWhiteSpace(Szoveg) ? Szoveg : null,
TanuloErtekelesTipusId = TanuloErtekelesTipusId,
EvfolyamTipusId = EvfolyamTipusId,
TantargyId = TantargyId,
TipusId = TanuloErtekelesMondatbankHelper.GetTanuloErtekelesMondatbankTipusIdByTantargyId(TantargyId),
SzovegNemet = !string.IsNullOrWhiteSpace(SzovegNemet) ? SzovegNemet : null,
SzovegHorvat = !string.IsNullOrWhiteSpace(SzovegHorvat) ? SzovegHorvat : null,
SzovegRoman = !string.IsNullOrWhiteSpace(SzovegRoman) ? SzovegRoman : null,
SzovegSzerb = !string.IsNullOrWhiteSpace(SzovegSzerb) ? SzovegSzerb : null,
};
return result;
}
public override ModelStateDictionary Validate()
{
var modelStateDictionary = new ModelStateDictionary();
if (TanuloErtekelesTipusId == null
&& EvfolyamTipusId == null
&& TantargyId == null
&& string.IsNullOrWhiteSpace(Szoveg)
&& (!RovidNevEnabled || string.IsNullOrWhiteSpace(RovidNev)))
{
modelStateDictionary.AddModelError(string.Empty, ErrorResource.NincsMegadvaModositandoAdat);
}
if (!RovidNev.IsNullOrWhiteSpace() && RovidNev.Length > 3)
{
modelStateDictionary.AddModelError(nameof(RovidNev), ErrorResource.ARovidNevNemLehetHosszabbMint3Karakter);
}
if (!Szoveg.IsNullOrWhiteSpace() && Szoveg.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(Szoveg), string.Format(ErrorResource.ASzovegNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegNemet.IsNullOrWhiteSpace() && SzovegNemet.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegNemet), string.Format(ErrorResource.ASzovegNemetNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegHorvat.IsNullOrWhiteSpace() && SzovegHorvat.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegHorvat), string.Format(ErrorResource.ASzovegHorvatNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegRoman.IsNullOrWhiteSpace() && SzovegRoman.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegRoman), string.Format(ErrorResource.ASzovegRomanNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
if (!SzovegSzerb.IsNullOrWhiteSpace() && SzovegSzerb.Length > Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz)
{
modelStateDictionary.AddModelError(nameof(SzovegSzerb), string.Format(ErrorResource.ASzovegSzerbNemLehetHosszabbMint0Karakter, Core.Constants.MinMaxValues.MaxSzovegesErtekelesHossz));
}
return modelStateDictionary;
}
}
}

View file

@ -0,0 +1,34 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.Resources;
using Kreta.Web.Attributes;
using Kreta.Web.Models;
namespace Kreta.Web.Areas.Adminisztracio.Models
{
public class TanuloKIRImportModel : UploadFileModel
{
[KretaDisplayName(450)] /*Tanév*/
//[KretaRequired(StringResourcesId = 3823)]
public int? TanevId { get; set; }
[KretaDisplayName(90)] /*Feladatellátási hely*/
//[KretaRequired(StringResourcesId = 1680)]
public int? FeladatellatasiHelyId { get; set; }
public List<SelectListItem> FeladatellatasiHelyList { get; set; }
public List<SelectListItem> TanevLista { get; set; }
public KIRLoginModel KirLoginModel { get; set; }
public KIRImportModel KIRImportModel { get; set; }
public bool KIRImportEnabled { get; set; }
[Display(Name = nameof(AdminisztracioResource.ImportalasUtanMindenJuttatasAdatUjraszamitasa), ResourceType = typeof(AdminisztracioResource))]
public bool? IsJuttatasUpdate { get; set; } = false;
public bool IsSzakkepzoIntezmeny { get; set; }
}
}

Some files were not shown because too many files have changed in this diff Show more