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> GetIKTKompetenciaSzintList([DataSourceRequest] DataSourceRequest request) { return Json(((int)GeneratedAdatszotarTipusEnum.IKTKompetenciaSzint).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList()); } public JsonResult> GetIKTEszkozhasznalatModjaList([DataSourceRequest] DataSourceRequest request) { return Json(((int)GeneratedAdatszotarTipusEnum.IKTEszkozhasznalatMod).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList()); } public JsonResult> 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() }; 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; } } }