148 lines
6.9 KiB
C#
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;
|
|
|
|
}
|
|
|
|
}
|
|
}
|