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