using System; using System.Data; 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.Security; using Kreta.Enums; using Kreta.Framework; using Kreta.Resources; using Kreta.Web.Areas.TanuloErtekeles.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.TanuloErtekeles.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)] public class NaploEllenorzesApiController : ApiController { public DataSourceResult GetNaploEllenorzesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { NaploEllenorzesKeresoModel model = JsonConvert.DeserializeObject(data); if (!model.OsztalyId.HasValue) { return new DataSourceResult(); } Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(model.OsztalyId.Value).ToString(), out OktNevelesiKategoriaEnum osztalycsoportKategoria); model.FeladatKategoriaId = (int)osztalycsoportKategoria; var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization)); if (!authorization.IsValidOsztaly(model.OsztalyId.Value)) { throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz); } var helper = new NaploEllenorzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetNaploEllenorzesekHeadRow(model.FeladatKategoriaId, model.OsztalyId, model.FeladatEllatasiHelyId); ds.Tables[0].Columns.Add("Osszegzes"); foreach (DataRow row in ds.Tables[0].Rows) { row["Osszegzes"] = string.Format(StringResourcesUtil.GetString(2745), "" + row["hetSorszam"] + "", "" + row["NemNaplozottOrakSzama"] + ""); } return ds.ToDataSourceResult(); } public DataSourceResult GetNaploEllenorzesDetailsGrid(int? feladatKategoriaId, int? feladatEllatasiHelyId, int osztalyId, int hetsorszamaId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization)); if (!authorization.IsValidOsztaly(osztalyId)) { throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz); } var helper = new NaploEllenorzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetNaploEllenorzesekDetails(feladatKategoriaId, hetsorszamaId, osztalyId, feladatEllatasiHelyId); ds.Tables[0].Columns.Add("OraKezdeteString"); ds.Tables[0].Columns.Add("OraVegeString"); foreach (DataRow row in ds.Tables[0].Rows) { if (!row.Field("CsengetesiRend").HasValue) { row["OraKezdeteString"] = row.Field("OraKezdete").ToString("HH:mm"); row["OraVegeString"] = row.Field("OraVege").ToString("HH:mm"); } } return ds.ToDataSourceResult(); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage NaploellenorzesMentes(NaploEllenorzesModel model) { model.EllenorzesDatuma = model.EllenorzesDatuma.ToLocalTime(); var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization)); if (!authorization.IsValidOsztaly(model.OsztalyId.Value)) { throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz); } var helper = new NaploEllenorzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.SaveNaploEllenorzes(model.ConvertModelToCo()); return new HttpResponseMessage(HttpStatusCode.OK); } } }