55 lines
2.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|