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

70 lines
2.6 KiB
C#

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.Resources;
using Kreta.Web.Areas.Tanulo.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.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)]
public class CsoportTanuloiApiController : ApiController
{
public DataSourceResult GetCsoportTanuloiGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<CsoportTanuloiSearchModel>(data);
if (!model.OsztalyCsoport.HasValue)
{
return new DataSourceResult();
}
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(model.OsztalyCsoport.Value).ToString(), out OktNevelesiKategoriaEnum osztalycsoportKategoria);
model.FeladatKategoriaId = (int)osztalycsoportKategoria;
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
if (!authorization.IsValidCsoport(model.OsztalyCsoport.Value))
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
}
bool? tankozelezett = null;
if (model.Tankotelezett.HasValue)
{
tankozelezett = model.Tankotelezett.Value == 1;
}
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
DataSet tanulok = helper.GetTanuloDataSetByOsztalyCsoportId(
model.OsztalyCsoport.Value,
model.FeladatKategoriaId,
model.Nev,
model.AnyjaSzuletesiNev,
model.SzuletesiHely,
model.SzuletesiIdoTol,
model.SzuletesiIdoIg,
model.OktatasiAzonosito,
tankozelezett,
model.Tanterv,
model.FeladatEllatasiHelyId);
return tanulok.ToDataSourceResult();
}
}
}