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