kreta/KretaWeb/Areas/Adatszolgaltatasok/ApiControllers/PedagogusIKTAdatszolgaltatasApiController.cs
2024-03-13 00:33:46 +01:00

148 lines
6.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
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.Security;
using Kreta.BusinessLogic.Utils;
using Kreta.Enums;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Adatszolgaltatasok.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adatszolgaltatasok.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class PedagogusIKTAdatszolgaltatasApiController : ApiController
{
public DataSourceResult GetPedagogusIKTAdatszolgaltatasGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
DataSet ds;
var helper = new PedagogusIKTAdatszolgaltatasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
ds = helper.GetPedagogusIKTAdatszolgaltatasGrid();
#region "Header helyett nulladik sor"
//NOTE: "Ideiglenesen mivel a grid headerbe nincs lehetőség az összes oszlopérték beállítására egyszerre, ezért bekerül egy nulladik sor, amivel állítani lehet..."
DataRow dr = ds.Tables[0].NewRow();
dr["ID"] = 0;
dr["TanarNev"] = string.Empty;
dr["SzuletesiIdo"] = DBNull.Value;
ds.Tables[0].Rows.InsertAt(dr, 0);
#endregion "Header helyett nulladik sor"
return ds.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SavePedagogusIKTAdatszolgaltatas(PedagogusIKTAdatszolgaltatasRogzitesModel model)
{
if (model.ProjektorokSzama.HasValue && model.MukodoProjektorokSzama.HasValue)
{
if (model.ProjektorokSzama < model.MukodoProjektorokSzama)
{
ModelState.AddModelError(Core.Constants.General.Error, AdatszolgaltatasokResource.AProjektorokSzamaNemLehetAlacsonyabbMintAMukodoProjektorokSzama);
}
}
if (model.TermekSzama.HasValue && model.WifiLefedettTermekSzama.HasValue)
{
if (model.TermekSzama < model.WifiLefedettTermekSzama)
{
ModelState.AddModelError(Core.Constants.General.Error, AdatszolgaltatasokResource.ATermekSzamaNemLehetAlacsonyabbMintAWifiAltalLefedettTermekSzama);
}
}
foreach (var pedagogusIKTKompetencia in model.PedagogusIKTKompetenciaList)
{
if (!pedagogusIKTKompetencia.IKTKompetenciaSzint.HasValue)
{
ModelState.AddModelError(Core.Constants.General.Error, string.Format(AdatszolgaltatasokResource.PedagogusnalKotelezoMezo, pedagogusIKTKompetencia.TanarNev, AdatszolgaltatasokResource.IKTKompetenciaSzint));
}
if (!pedagogusIKTKompetencia.IKTEszkozhasznalatModja.HasValue)
{
ModelState.AddModelError(Core.Constants.General.Error, string.Format(AdatszolgaltatasokResource.PedagogusnalKotelezoMezo, pedagogusIKTKompetencia.TanarNev, AdatszolgaltatasokResource.IKTEszkozhasznalatModja));
}
else
{
if (pedagogusIKTKompetencia.IKTEszkozhasznalatModja != (int)IKTEszkozhasznalatModEnum.Nincs && !pedagogusIKTKompetencia.ElsodlegesIKTEszkoz.HasValue)
{
ModelState.AddModelError(Core.Constants.General.Error, string.Format(AdatszolgaltatasokResource.PedagogusnalKotelezoMezo, pedagogusIKTKompetencia.TanarNev, AdatszolgaltatasokResource.PedagogusElsodlegesIKTEszkoze));
}
if (pedagogusIKTKompetencia.IKTEszkozhasznalatModja == (int)IKTEszkozhasznalatModEnum.Nincs && pedagogusIKTKompetencia.ElsodlegesIKTEszkoz.HasValue)
{
ModelState.AddModelError(Core.Constants.General.Error, string.Format(AdatszolgaltatasokResource.PedagogusnalIKTEszkozhasznalatModjaNincs, pedagogusIKTKompetencia.TanarNev));
}
}
}
if (ModelState.IsValid)
{
var helper = new PedagogusIKTAdatszolgaltatasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SavePedagogusIKTAdatszolgaltatas(ConvertModelToCo(model));
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
public JsonResult<List<ComboBoxListItem>> GetIKTKompetenciaSzintList([DataSourceRequest] DataSourceRequest request)
{
return Json(((int)GeneratedAdatszotarTipusEnum.IKTKompetenciaSzint).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList());
}
public JsonResult<List<ComboBoxListItem>> GetIKTEszkozhasznalatModjaList([DataSourceRequest] DataSourceRequest request)
{
return Json(((int)GeneratedAdatszotarTipusEnum.IKTEszkozhasznalatMod).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList());
}
public JsonResult<List<ComboBoxListItem>> GetElsodlegesIKTEszkozList([DataSourceRequest] DataSourceRequest request)
{
return Json(((int)GeneratedAdatszotarTipusEnum.ElsodlegesIKTEszkoz).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList());
}
private PedagogusIKTAdatszolgaltatasRogzitesCO ConvertModelToCo(PedagogusIKTAdatszolgaltatasRogzitesModel model)
{
var co = new PedagogusIKTAdatszolgaltatasRogzitesCO
{
ENaploHasznalat = model.ENaploHasznalat,
ProjektorokSzama = model.ProjektorokSzama,
MukodoProjektorokSzama = model.MukodoProjektorokSzama,
TermekSzama = model.TermekSzama,
WifiLefedettTermekSzama = model.WifiLefedettTermekSzama,
WifiEleres = model.WifiEleres,
PedagogusIKTKompetenciaList = new List<PedagogusIKTKompetenciaCO>()
};
foreach (var item in model.PedagogusIKTKompetenciaList)
{
co.PedagogusIKTKompetenciaList.Add(new PedagogusIKTKompetenciaCO
{
ElsodlegesIKTEszkoz = item.ElsodlegesIKTEszkoz,
IKTEszkozhasznalatModja = item.IKTEszkozhasznalatModja,
IKTKompetenciaSzint = item.IKTKompetenciaSzint,
TanarId = item.TanarId
});
}
return co;
}
}
}