This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,129 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Util;
using Kreta.Web.Areas.TanuloErtekeles.Models.TanuloErtekeles;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.TanuloErtekeles.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
public class OsztalyzatokApiController : ApiController
{
public DataSourceResult GetOsztalyzatokFeleviErtesitoGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var result = GetOsztalyzatokErtesitoGrid(data, request, (int)ErtekelesTipusEnum.felevi_jegy_ertekeles);
return result;
}
public DataSourceResult GetOsztalyzatokEvvegiErtesitoGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))]
DataSourceRequest request)
{
var result = GetOsztalyzatokErtesitoGrid(data, request, (int)ErtekelesTipusEnum.evvegi_jegy_ertekeles);
return result;
}
private DataSourceResult GetOsztalyzatokErtesitoGrid(string data, DataSourceRequest request, int ertekelesTipusEnumId)
{
var model = JsonConvert.DeserializeObject<OsztalyzatokFeleviEvvegiErtesitoModel>(data);
var osztalyId = model.OsztalyId;
if (!osztalyId.IsEntityId())
{
return new DataSourceResult();
}
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var feladatKategoriaId = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyId.Value);
var tanuloErtekelesListModel = new TanuloErtekelesListModel
{
TanuloIdSearch = ClaimData.FelhasznaloId,
TipusIdSearch = ertekelesTipusEnumId,
OsztalyCsoportIdSearch = osztalyId.Value,
FeladatKategoriaIdSearch = feladatKategoriaId,
KellKapcsolodoCsoportokSearch = true
};
var dataSet = helper.GetTanuloErtekelesListGridDataSet(tanuloErtekelesListModel.ToCo(), pErtekelesTextTemaval: true);
var dataTable = dataSet.Tables[0];
if (feladatKategoriaId != (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
{
var datum = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDatumInTanev();
var tanuloOsztalyId = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloOsztalyIdByFeladatKategoria(ClaimData.FelhasznaloId, datum, (OktNevelesiKategoriaEnum)feladatKategoriaId);
if (!tanuloOsztalyId.IsEntityId())
{
dataTable.Rows.Clear();
}
else
{
var tanuloOsztalyEvfolyamTipusId = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportEvfolyamTipusId(tanuloOsztalyId.Value);
var tanuloIdAndFeladatKategoriaIdAndEvfolyamTipusIdList = new List<(int tanuloId, int feladatKategoriaId, int? evfolyamTipusId)>
{
(ClaimData.FelhasznaloId, feladatKategoriaId, tanuloOsztalyEvfolyamTipusId)
};
helper.RemoveMasEvfolyamTanuloErtekelesek(dataTable, tanuloIdAndFeladatKategoriaIdAndEvfolyamTipusIdList);
}
}
helper.RemoveTanuloJogosultsagMiattiErtekelesek(new List<int>() { ClaimData.FelhasznaloId }, dataTable);
var gridDataSet = dataSet.Tables[0].Rows.Count > 0 ? GetSortedDataSet(dataSet.Tables[0]) : dataSet;
return gridDataSet.ToDataSourceResult();
}
private DataSet GetSortedDataSet(DataTable dataTable)
{
var targyKategoriaTipusDictionaryItemList = ((int)GeneratedAdatszotarTipusEnum.TargyKategoriaTipus).GetItemsByType(ClaimData.SelectedTanevID.Value);
dataTable.Columns.Add("TantargyKategoriaOrder");
dataTable.Columns.Add("FotargyTantargyKategoriaOrder");
var tanuloErtekelesRows = dataTable.Rows.Cast<DataRow>().ToList();
foreach (var dataRow in tanuloErtekelesRows)
{
var tantargyKategoriaId = SDAConvert.ToNullableInt32(dataRow["TantargyKategoriaId"]);
dataRow["TantargyKategoriaOrder"] = SDAConvert.ToBooleanFromTF(dataRow["IsMagatartasSzorgalom"]) ? 0 : tantargyKategoriaId.IsEntityId() ? targyKategoriaTipusDictionaryItemList.Single(x => x.Id == tantargyKategoriaId.Value).Order : null;
var fotargyTantargyKategoriaId = SDAConvert.ToNullableInt32(dataRow["FotargyTantargyKategoriaId"]);
dataRow["FotargyTantargyKategoriaOrder"] = fotargyTantargyKategoriaId.IsEntityId() ? targyKategoriaTipusDictionaryItemList.Single(x => x.Id == fotargyTantargyKategoriaId.Value).Order : null;
}
var sortedDataTable = dataTable
.AsEnumerable()
.OrderBy(x => SDAConvert.ToBoolean(x["IsFotargy"]) ? SDAConvert.ToNullableInt32(x["TantargyKategoriaOrder"]) ?? 10000 : SDAConvert.ToNullableInt32(x["FotargyTantargyKategoriaOrder"]) ?? 10000)
.ThenBy(x => SDAConvert.ToBoolean(x["IsFotargy"]) ? SDAConvert.ToString(x["TantargyNev"]) : SDAConvert.ToString(x["FotargyNev"]))
.ThenBy(x => SDAConvert.ToBoolean(x["IsFotargy"]) ? 0 : 1)
.ThenBy(x => SDAConvert.ToString(x["TantargyNev"]))
.CopyToDataTable();
var gridDataSet = new DataSet();
gridDataSet.Tables.Add(sortedDataTable);
return gridDataSet;
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public ZaradekModel GetTanuloZaradek(string osztalyId)
{
var tanuloCo = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloiAdatok(ClaimData.FelhasznaloId, kovTanevId: null, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater, int.Parse(osztalyId));
return tanuloCo.Zaradek.TanuloCsoportId.HasValue ? new ZaradekModel(tanuloCo.Zaradek.TanuloCsoportId.Value, tanuloCo.ID.Value) : new ZaradekModel();
}
}
}