740 lines
33 KiB
C#
740 lines
33 KiB
C#
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
|
|
}
|
|
}
|