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

55 lines
2.7 KiB
C#

using System;
using System.Data;
using System.Text.RegularExpressions;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Areas.TanuloErtekeles.Models;
using Kreta.Web.Helpers;
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, KretaClaimPackages.Tanar.ClaimValue)]
public class DolgozatokApiController : ApiController
{
public DataSourceResult GetDolgozatokAtlagaGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<DolgozatokAtlagaSearchModel>(data);
model.TanarId = ClaimData.FelhasznaloId;
model.SzuperOsztalyfonok = Convert.ToInt32(AuthorizeHelper.CheckPackageAccess(new[] { KretaClaimPackages.SzuperOsztalyfonok.ClaimValue }));
model.Datum = DateTime.Now;
var searchCo = model.ConvertToCo();
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
Regex starterRegex = new Regex($"^{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatotArany)} ");
Regex innerRegex = new Regex($",{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatotArany)} ");
helper.GridParameters.OrderBy = starterRegex.Replace(helper.GridParameters.OrderBy, $"{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatot)} ");
helper.GridParameters.OrderBy = innerRegex.Replace(helper.GridParameters.OrderBy, $",{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatot)} ");
DataSet dataSet = helper.GetTanuloErtekelesDataSetForGrid(searchCo);
return dataSet.ToDataSourceResult();
}
public DataSourceResult GetDolgozatReszletekGrid(int osztalyCsoportId, int tantargyId, string ertekelesTemaja, string datum, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var gridParameters = Converter.GridParameter(request);
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = gridParameters;
var dataSet = helper.GetDolgozatReszletekDataSetForGrid(osztalyCsoportId, tantargyId, ertekelesTemaja, DateTime.Parse(datum));
return dataSet.ToDataSourceResult();
}
}
}