113 lines
6.1 KiB
C#
113 lines
6.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Core;
|
|
using Kreta.Ellenorzo.BL.VN.Ertekeles.Atlag.OsztalyAtlag;
|
|
using Kreta.Ellenorzo.Domain.VN.Common;
|
|
using Kreta.Ellenorzo.Domain.VN.Ertekeles.Atlag.OsztalyAtlag;
|
|
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
|
|
using Kreta.Ellenorzo.Enums;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Web.Areas.TanuloErtekeles.Models.TanuloErtekeles;
|
|
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.Tanar.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
|
public class TanuloErtekelesByTanuloApiController : BaseTanuloErtekelesApiController
|
|
{
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
|
public DataSourceResult GetTanuloErtekelesByTanuloGrid(string data)
|
|
{
|
|
var model = JsonConvert.DeserializeObject<TanuloErtekelesByTanuloListModel>(data);
|
|
|
|
int? tanuloId = model.TanuloId;
|
|
if (!tanuloId.IsEntityId())
|
|
{
|
|
return new DataSourceResult();
|
|
|
|
}
|
|
|
|
return GetTanuloErtekelesGrid(ClaimData.FelhasznaloId, tanuloId.Value, false, model.OktatasiNevelesiFeladatId, model.IsOsztalyAtlagMegjelenik);
|
|
}
|
|
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Tanulo.ClaimValue)]
|
|
public DataSourceResult GetTanuloErtekelesByTanuloGridTanuloView(string data)
|
|
{
|
|
var model = JsonConvert.DeserializeObject<TanuloErtekelesByTanuloListModel>(data);
|
|
return GetTanuloErtekelesGrid(null, ClaimData.FelhasznaloId, true, model.OktatasiNevelesiFeladatId, model.IsOsztalyAtlagMegjelenik);
|
|
}
|
|
|
|
private DataSourceResult GetTanuloErtekelesGrid(int? tanarId, int tanuloId, bool isTanuloView, int oktatasiNevelesiFeladatId, bool isOsztalyAtlagMegjelenik)
|
|
{
|
|
DateTime datum = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDatumInTanev();
|
|
|
|
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
DataSet dataSet = helper.GetTanuloErtekelesDataSetByTanuloForGrid(tanarId, tanuloId, isTanuloView, datum, oktatasiNevelesiFeladatId);
|
|
|
|
if (isOsztalyAtlagMegjelenik)
|
|
{
|
|
List<TantargyUid> tantargyUids = null;
|
|
if (dataSet.Tables[0].Rows.Count > 0)
|
|
{
|
|
tantargyUids = new List<TantargyUid>();
|
|
foreach (DataRow row in dataSet.Tables[0].Rows)
|
|
{
|
|
if (!row.Field<bool>("TantargyIsTanulmanyiAtlagbaNemSzamit"))
|
|
{
|
|
tantargyUids.Add(new TantargyUid(row.Field<int?>("TantargyId") ?? 0));
|
|
}
|
|
}
|
|
}
|
|
|
|
var osztalyAtlagok = new OsztalyAtlagFacade(new MobileUser(ClaimData.IntezmenyAzonosito, tanuloId, ClaimData.BelepesiNev, ClaimData.GondviseloId, new List<FelhasznaloSzerepkor> { ClaimData.GondviseloId.HasValue ? FelhasznaloSzerepkor.Gondviselo : FelhasznaloSzerepkor.Tanulo }, ClaimData.SelectedTanevID.Value, null, ClaimData.FelhasznaloIdpEgyediAzonosito, ClaimData.FelhasznaloIdpEgyediAzonosito, ClaimData.IntezmenyGuid.Value))
|
|
.ListAktualisTanuloOsztalyAtlag(new OsztalyAtlagListRequest
|
|
{
|
|
OktatasiNevelesiFeladatUid = new OktatasiNevelesiFeladatUid(oktatasiNevelesiFeladatId, (OktatasiNevelesiFeladatEnum?)oktatasiNevelesiFeladatId),
|
|
TantargyUids = tantargyUids,
|
|
IsAtlagNeeded = true
|
|
});
|
|
dataSet.Tables[0].Columns.Add("OsztalyAtlag", typeof(decimal));
|
|
foreach (DataRow row in dataSet.Tables[0].Rows)
|
|
{
|
|
var osztalyAtlag = osztalyAtlagok.FirstOrDefault(a => a.Tantargy.Uid.Id == row.Field<int?>("TantargyId"));
|
|
if (osztalyAtlag != null && osztalyAtlag.OsztalyCsoportAtlag.HasValue)
|
|
{
|
|
row["OsztalyAtlag"] = osztalyAtlag.OsztalyCsoportAtlag.Value;
|
|
}
|
|
}
|
|
}
|
|
|
|
return dataSet.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetTanuloErtekelesByTanuloDetailGrid(int tantargyId, int oktatasiNevelesiFeladatId, int tanuloId)
|
|
{
|
|
return GetDetailGridData(tanuloId, tantargyId.IsEntityId() ? tantargyId : (int?)null, false, oktatasiNevelesiFeladatId);
|
|
}
|
|
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Tanulo.ClaimValue)]
|
|
public DataSourceResult GetTanuloErtekelesByTanuloDetailGridTanuloView(int tantargyId, int oktatasiNevelesiFeladatId)
|
|
{
|
|
return GetDetailGridData(ClaimData.FelhasznaloId, tantargyId.IsEntityId() ? tantargyId : (int?)null, true, oktatasiNevelesiFeladatId);
|
|
}
|
|
|
|
private DataSourceResult GetDetailGridData(int tanuloId, int? tantargyId, bool isTanuloView, int oktatasiNevelesiFeladatId)
|
|
{
|
|
bool showToroltElemek = !isTanuloView;
|
|
DateTime datum = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDatumInTanev();
|
|
DataSet dataSet = GetDetailGridDataBase(tanuloId, tantargyId, showToroltElemek, datum, (int)ErtekelesMegjelenesFajtaEnum.Tanulo, oktatasiNevelesiFeladatId: oktatasiNevelesiFeladatId, isTanuloView: isTanuloView);
|
|
|
|
return dataSet.ToDataSourceResult();
|
|
}
|
|
}
|
|
}
|