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,828 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Helper;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Newtonsoft.Json;
using SDA.DataProvider;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.AMImodul.ClaimValue)]
public class AmiTanuloApiController : ApiController
{
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)]
public DataSourceResult GetTanuloGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloGridModel>(TanuloGridModel.TanuloExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(TanuloResource.TanuloExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{TanuloResource.TanuloExportFileName}.xlsx");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
data = data.Replace("_", string.Empty);
var model = JsonConvert.DeserializeObject<TanuloSearchModel>(data);
var co = model.ConvertModelToCo(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsActivTanev);
co.LekerdezesNapja = DateTime.Today;
co.FeladatKategoriaId = (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas;
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloItemCoList(co);
var modelList = new List<TanuloGridModel>();
foreach (var item in coList)
{
var gridModel = new TanuloGridModel(item);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
#region Növendék mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.IsLEPKezelo.ClaimValue)]
public HttpResponseMessage DeleteJogviszonySzuneteltetes(JogviszonySzuneteltetesDeleteModel model)
{
try
{
if (model.IsJogviszonySzuneteltetese && model.GridCnt == 1)
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.JogviszonySzunetLegalabbEgyIdoszakKotelezo);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteJogviszonySzuneteltetes(model.Id.Value);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveJogviszonySzuneteltetes(JogviszonySzuneteltetesModel model)
{
try
{
if (model.JogviszonySzuneteltetesKezdete.Value > model.JogviszonySzuneteltetesVege.Value)
ModelState.AddModelError("JogviszonySzuneteltetes1", ErrorResource.JogviszonySzuneteltetes);
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevData = tanevHelper.GetTanevInfo();
if (model.JogviszonySzuneteltetesKezdete.Value < tanevData.KezdoNap)
ModelState.AddModelError("JogviszonySzuneteltetes2", ErrorResource.JogviszonySzuneteltetesKezdeteTanevben);
if (model.JogviszonySzuneteltetesVege.Value > tanevData.UtolsoNap)
ModelState.AddModelError("JogviszonySzuneteltetes3", ErrorResource.JogviszonySzuneteltetesVegeTanevben);
if (ModelState.IsValid)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SaveJogviszonySzuneteltetes(model.TanuloId.Value, model.OsztalyId, model.JogviszonySzuneteltetesKezdete.Value, model.JogviszonySzuneteltetesVege.Value, ClaimData.KovTanevID);
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanulo(TanuloModel model)
{
try
{
var felhasznaloiNevGeneralasModja = TanuloLogic.GetFelhasznaloiNevGeneralasModja(model);
TanuloLogic.TanuloCustomValidation(ModelState, model, felhasznaloiNevGeneralasModja, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
if (ModelState.IsValid)
{
var response = TanuloLogic.TanuloMentese(model, felhasznaloiNevGeneralasModja);
return Request.CreateResponse(HttpStatusCode.OK, response);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Check4TValidacioExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznaloiAdatokkalMarLetezikFelhasznalo);
}
}
public HttpResponseMessage SaveData(TanuloTobbesModModel model)
{
TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model);
if (ModelState.IsValid)
return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
public HttpResponseMessage PreValidation(TanuloTobbesModModel model)
{
TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
string warningMessage = TanuloLogic.ValidateOnSaveData(model);
if (!string.IsNullOrWhiteSpace(warningMessage))
{
return Request.CreateResponse(HttpStatusCode.BadRequest, warningMessage);
}
return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
#endregion Növendék mentés/módosítás/törlés
#region Generálás
public HttpResponseMessage JelszoGeneralas(int userId, bool isGondviselo)
{
var result = TanuloLogic.JelszoGeneralas(userId, isGondviselo);
return Request.CreateResponse(HttpStatusCode.OK, result);
}
public System.Web.Mvc.JsonResult FelhasznalonevGeneralas([FromBody] FelhasznalonevGeneralasModel felhasznalonevGeneralasModel)
{
try
{
var result = new System.Web.Mvc.JsonResult { Data = TanuloLogic.FelhasznalonevGeneralas(felhasznalonevGeneralasModel) };
return result;
}
catch (UniqueKeyViolationException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik);
}
catch (UserNameExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik);
}
}
#endregion
#region Növendék elérhetőség mentés/módosítás/törlés
public CimElerhetosegModel GetTanuloElerhetosegTel(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegTelById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegTel(CimElerhetosegModel model)
{
Kreta.Web.Classes.Utils.TelefonSzamValidation(ModelState, model.Telefon, model.TelefonTipus, TelefonszamTulajdonosEnum.Tanulo);
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegTelCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegTelMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegTel([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloElerhetosegTelTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Telefonszam, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetTanuloElerhetosegEmail(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegEmailById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegEmail(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegEmailCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegEmailMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegEmail([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloElerhetosegEmailTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.EmailCim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetTanuloElerhetosegCim(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegCim(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegCim([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Növendék elérhetőség mentés/módosítás/törlés
#region Gondviselő mentés/módosítás/törlés
public TanuloModGondviseloModel GetTanuloGondviselo(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloById(id);
return TanuloModGondviseloModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviselo(TanuloModGondviseloModel model)
{
try
{
TanuloLogic.TanuloGondviseloSaveValidation(ModelState, model);
if (!ModelState.IsValid)
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
var co = TanuloModGondviseloModel.ConvertModelToCo(model);
var belepesList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloMentese(co, ClaimData.IsSzirIntezmeny, ClaimData.KovTanevID);
var fileString = TanuloLogic.GondviseloFileGenerate(model.FileLetoltesSzukseges, belepesList);
var response = new { EmailErrors = belepesList.EmailErrors, FileString = fileString };
return Request.CreateResponse(HttpStatusCode.OK, response);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message) { UnHandledException = ex.InnerException };
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGondviselo([FromBody] int id)
{
try
{
return TanuloLogic.DeleteTanulogondviselo(id);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Gondviselo, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Gondviselő mentés/módosítás/törlés
#region Gondviselő elérhetőség mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public CimElerhetosegModel GetGondviseloElerhetosegCim(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviseloCim(CimElerhetosegModel model)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var customModelState = TanuloLogic.CheckGondviseloCimCustomValidation(ModelState, model);
if (model.TanulovalEgyezik)
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
if (customModelState.IsValid)
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGondviseloCim([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Gondviselő elérhetőség mentés/módosítás/törlés
#region GridHelpers
public DataSourceResult GetOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloDetailModel>(data);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetOsztalyCsoport(model.TanuloId, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas, !model.MegNemAktivOsztalyok);
return ds.ToDataSourceResult();
}
public DataSourceResult GetTanultTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetTanultTantargyak(tanuloId.Value, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetTanarokTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTanarokTantargyak(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviselok(int.Parse(id), true);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloCimek(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokCimDetailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloCimekByGondviselo(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetOrarendiOrakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetOrarendiOrak(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetErtekelesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetErtekelesek(int.Parse(id), (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
return ds.ToDataSourceResult();
}
public DataSourceResult GetMulasztasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetMulasztasok(int.Parse(id), (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
return ds.ToDataSourceResult();
}
public DataSourceResult GetIgazolasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetIgazolasok(tanuloId.Value, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetFeljegyzesekHaviGrid(string id, string osztalycsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var tanuloId = SDAConvert.ToNullableInt32(id);
var osztalyId = SDAConvert.ToNullableInt32(osztalycsoportId);
DataSourceResult result = tanuloId.IsEntityId() && osztalyId.IsEntityId()
? helper.GetFeljegyzesekHavi(tanuloId.Value, osztalyId.Value).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetElozmenyekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetElozmenyek(int.Parse(id), (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetCim(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTelefonSzam(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetEmails(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetGondviseloUtolsoBelepesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloUtolsoBelepes(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue)]
public DataSourceResult GetJogviszonySzuneteltetesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetJogviszonySzuneteltetes(tanuloId.Value, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetJogviszonyGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var co = helper.GetJogviszony(int.Parse(id));
return co.ToDataSourceResult(Converter.GridParameter(request));
}
#endregion GridHelpers
#region Export
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumnsTanulokLakcimmel()
{
return Json(TanuloLogic.GetColumnsTanulokLakcimmel());
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumns()
{
return Json(TanuloLogic.GetColumnsforExport());
}
[ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)]
public DataSourceResult GetTanuloExportGrid(string searchFilter, string sortColumn, string sortDir)
{
return TanuloLogic.GetDataSetTanuloExport(searchFilter, sortColumn, sortDir).ToDataSourceResult();
}
#endregion Export
#region Tantárgy felosztas mentés/módosítás/törlés
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public DataSourceResult GetTanuloCsoportosFoglalkozasai(int tanuloId, int osztalyId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var ds = helper.GetTanuloCsoportosFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public DataSourceResult GetTanuloEgyeniFoglalkozasai(int tanuloId, int osztalyId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var ds = helper.GetTanuloEgyeniFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas);
return ds.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage ValidateTantargyfelosztas(List<TanuloTantargyaiModel> model)
{
AmiTanuloLogic.ValidateTanuloTantargyaiModel(model);
return Request.CreateResponse(HttpStatusCode.OK, model, Configuration.Formatters.JsonFormatter);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTantargyfelosztas(SaveTanuloTantargyaiModel list)
{
var osztalyId = list.OsztalyId;
var model = list.TanuloTantargyak;
var tanuloId = list.TanuloId;
var tantargyHelper = new TantargyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var m in model)
{
if (!m.TantargyID.HasValue && m.AmiTantargyID.HasValue)
{
(int? tantargyId, int? amiTantargyId, string tantargyNev) = tantargyHelper.GetTantargyAMISablonhoz(m.AmiTantargyID.Value);
if (tantargyId.HasValue)
{
m.TantargyID = tantargyId;
if (!amiTantargyId.HasValue || amiTantargyId.Value != m.AmiTantargyID.Value)
{
tantargyHelper.UpdateAMITantargySablonId(tantargyId.Value, m.AmiTantargyID.Value);
}
}
else
{
var ujTantargyId = tantargyHelper.CreateAMITantargy(m.AmiTantargyID.Value, tantargyNev);
m.TantargyID = ujTantargyId;
}
}
}
var csoportos = model.Where(x => x.IsCsoportos);
var foglalkozasIdsInGrid = csoportos.Where(x => x.AmiFoglalkozasID.HasValue && x.AmiFoglalkozasID.Value > 0)
.Select(x => x.AmiFoglalkozasID.Value);
var foglakozasIdsInDB = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloCsoportosFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).Tables[0].AsEnumerable()
.Where(x =>
x.Field<int?>("AmiFoglalkozasID").HasValue && x.Field<int?>("AmiFoglalkozasID").Value > 0
).Select(x => x.Field<int?>("AmiFoglalkozasID").Value);
var torlendoCsoportosIds = foglakozasIdsInDB.Except(foglalkozasIdsInGrid).Distinct();
var tantargyFelosztasHelper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var id in torlendoCsoportosIds)
{
tantargyFelosztasHelper.DeleteFoglalkozasAmiTanulo(id);
}
foreach (var cs in csoportos)
{
if (!int.TryParse(cs.ID, out int id))
{
var foglalkozasId = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveFoglalkozas(cs.TantargyID.Value, cs.OsztalyId.Value, cs.TanarID.Value, cs.Oraszam, cs.OsszevontOra_BOOL);
cs.ID = foglalkozasId.ToString();
}
//csak akkor mentünk amifoglalkozást, ha mindent megadott
if (cs.AmiFotargy.IsEntityId() && cs.AmiTagozat.IsEntityId() && cs.AmiTantargyKotelezoseg.IsEntityId() || cs.AmiTantargyKotelezoseg.IsEntityId())
{
tantargyFelosztasHelper.InsertOrUpdateFoglalkozasAmiTanulo(cs.ToCo());
}
}
var egyeni = model.Where(x => !x.IsCsoportos);
var idsInGrid = egyeni.Select(x => int.TryParse(x.ID, out int id) ? id : (int?)null)
.Where(x => x.HasValue && x.Value > 0).Select(x => x.Value);
var idsInDB = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloEgyeniFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).Tables[0].AsEnumerable()
.Select(x => x.Field<int>("ID"));
var torlendoEgyeniIds = idsInDB.Except(idsInGrid).Distinct();
foreach (var id in torlendoEgyeniIds)
{
tantargyFelosztasHelper.DeleteTargyFelosztas(id);
}
foreach (var e in egyeni)
{
tantargyFelosztasHelper.CreateOrUpdateEgyeniTantargyFelosztasForAMI(e.ToCo());
}
return Request.CreateResponse(HttpStatusCode.OK);
}
#endregion Tantárgy felosztas mentés/módosítás/törlés
[HttpGet]
public JsonResult<bool> HasGondviseloAlapertelmezettCim(int gondviseloId)
{
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var letezikGondviseloAlapertelmezettCim = tanuloHelper.HasGondviseloAlapertelmezettCim(gondviseloId);
return Json(letezikGondviseloAlapertelmezettCim);
}
}
}

View file

@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Client.KozpontiKreta;
using Kreta.Core;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Core.Exceptions;
using Kreta.Core.KozpontiModels.MdszModels;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Helper;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Newtonsoft.Json;
using SDA.DataProvider;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
public class BaseTanuloApiController : ApiController
{
public readonly IKozpontiKretaConfiguration kozpontiKretaConfiguration;
public BaseTanuloApiController(IKozpontiKretaConfiguration kozpontiKretaConfiguration)
{
this.kozpontiKretaConfiguration = kozpontiKretaConfiguration ?? throw new ArgumentNullException(nameof(kozpontiKretaConfiguration));
}
[NonAction]
public DataSourceResult GetTanuloGrid(string data, DataSourceRequest request, bool isFromSzervezet)
{
var (gridParameter, modelList) = GetGridData(data, request);
return modelList.ToDataSourceResult(gridParameter);
}
[NonAction]
public DataSourceResult GetFelmentesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request, bool isFromSzervezet)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
var dualisKepzesTantargyId = new TantargyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDualisKepzesTantargyId();
var result = tanuloId.IsEntityId()
? helper.GetTanulokFelmentesei(new List<int> { tanuloId.Value }, isFromSzervezet, dualisKepzesTantargyId: dualisKepzesTantargyId).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[NonAction]
public HttpResponseMessage GetExport(string data, DataSourceRequest request, bool isFromSzervezet)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloGridModel>(isFromSzervezet ? TanuloGridModel.DualisTanuloExportAttributeId : TanuloGridModel.TanuloExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(TanuloResource.TanuloExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), !isFromSzervezet ? $"{TanuloResource.TanuloExportFileName}.{Constants.ImportExport.FileFormatXlsx}" : $"{TanuloResource.TanuloExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
[NonAction]
public DataSourceResult GetOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request, bool isFromSzervezet)
{
var model = JsonConvert.DeserializeObject<TanuloDetailModel>(data);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetOsztalyCsoport(model.TanuloId, model.FeladatKategoriaId, !model.MegNemAktivOsztalyok, isFromSzervezet);
return ds.ToDataSourceResult();
}
private (GridParameters gridParameter, List<TanuloGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
data = data.Replace("_", string.Empty);
var model = JsonConvert.DeserializeObject<TanuloSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloItemCoList(model.ConvertModelToCo(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsActivTanev));
var modelList = new List<TanuloGridModel>();
foreach (var co in coList)
{
var gridModel = new TanuloGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
}
}

View file

@ -0,0 +1,65 @@
using System.Web.Http;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
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 CsoportTanuloiAdatokApiController : ApiController
{
public DataSourceResult GetTanuloiAlapadatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var osztalyCsoportId = model?.OsztalyCsoportId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiAlapadatokGrid(tanuloId.Value, osztalyCsoportId.Value).ToDataSourceResult() :
new DataSourceResult();
return result;
}
public DataSourceResult GetTanuloiTanugyiadatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var osztalyCsoportId = model?.OsztalyCsoportId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiTanugyiadatokGrid(tanuloId.Value, osztalyCsoportId.Value).ToDataSourceResult() :
new DataSourceResult();
return result;
}
public DataSourceResult GetTanuloiEgyebAdatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var osztalyCsoportId = model?.OsztalyCsoportId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiEgyebAdatokGrid(tanuloId.Value, osztalyCsoportId).ToDataSourceResult() :
new DataSourceResult();
return result;
}
public DataSourceResult GetTanuloiGondviseloAdatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiGondviseloAdatokGrid(tanuloId.Value).ToDataSourceResult() :
new DataSourceResult();
return result;
}
}
}

View file

@ -0,0 +1,70 @@
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();
}
}
}

View file

@ -0,0 +1,318 @@
using System.Collections.Generic;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Helper;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue,
KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
[Attributes.KretaGlobalLanguageChangeApiActionFilter(LanguageCode = "hu-Dualis")]
public class DualisTanuloApiController : BaseTanuloApiController
{
public bool IsDualisKepzesEnabled => new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.DualisKepzes, IntezmenyConfigTipusEnum.IsEnabled);
public DualisTanuloApiController(IKozpontiKretaConfiguration kozpontiKretaConfiguration)
: base(kozpontiKretaConfiguration)
{
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetTanuloGrid(string data, DataSourceRequest request)
{
return GetTanuloGrid(data, request, IsDualisKepzesEnabled);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
return GetExport(data, request, IsDualisKepzesEnabled);
}
#region GridHelpers
[ApiRolePackageAuthorize(KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
return GetOsztalyCsoportGrid(data, request, IsDualisKepzesEnabled);
}
[ApiRolePackageAuthorize(KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetTanultTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
var result = tanuloId.IsEntityId()
? helper.GetTanultTantargyak(tanuloId.Value, (int)OktNevelesiKategoriaEnum.NevelesOktatas).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetTanarokTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetTanarokTantargyak(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetGondviselokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetGondviselok(int.Parse(id), true);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetGondviselokCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetGondviseloCimek(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetGondviselokCimDetailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetGondviseloCimekByGondviselo(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetOrarendiOrakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetOrarendiOrak(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetErtekelesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetErtekelesek(int.Parse(id), (int)OktNevelesiKategoriaEnum.NevelesOktatas);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetMulasztasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetMulasztasok(int.Parse(id), (int)OktNevelesiKategoriaEnum.NevelesOktatas);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetIgazolasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
var result = tanuloId.IsEntityId()
? helper.GetIgazolasok(tanuloId.Value, null).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetFeljegyzesekHaviGrid(string id, string osztalycsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var tanuloId = SDAConvert.ToNullableInt32(id);
var osztalyId = SDAConvert.ToNullableInt32(osztalycsoportId);
var result = tanuloId.IsEntityId() && osztalyId.IsEntityId()
? helper.GetFeljegyzesekHavi(tanuloId.Value, osztalyId.Value).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetElozmenyekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetElozmenyek(int.Parse(id), null);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetCim(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetTelefonSzam(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetFelmentesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
return GetFelmentesekGrid(id, request, IsDualisKepzesEnabled);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetEmails(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetKozossegiSzolgalatGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetKozossegiSzolgalat(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetGondviseloUtolsoBelepesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request),
};
var ds = helper.GetGondviseloUtolsoBelepes(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetJogviszonySzuneteltetesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
var result = tanuloId.IsEntityId()
? helper.GetJogviszonySzuneteltetes(tanuloId.Value, null).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetJogviszonyGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var co = helper.GetJogviszony(int.Parse(id));
return co.ToDataSourceResult(Converter.GridParameter(request));
}
#endregion GridHelpers
#region Export
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumnsTanulokLakcimmel()
{
return Json(TanuloLogic.GetColumnsTanulokLakcimmel());
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumns()
{
return Json(TanuloLogic.GetColumnsforExport());
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.IsLEPKezelo.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumnsLEP()
{
var items = new List<ExportColumn>
{
new ExportColumn() { Field = "TanuloNeve", Title = TanuloResource.Nev },
new ExportColumn() { Field = "Osztaly", Title = TanuloResource.Osztaly }
};
return Json(items);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
public DataSourceResult GetTanuloExportGrid(string searchFilter, string sortColumn, string sortDir)
{
return TanuloLogic.GetDataSetTanuloExport(searchFilter, sortColumn, sortDir).ToDataSourceResult();
}
#endregion Export
}
}

View file

@ -0,0 +1,869 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Helper;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Newtonsoft.Json;
using SDA.DataProvider;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.EGYMIModul.ClaimValue)]
public class EGYMITanuloApiController : ApiController
{
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue)]
public DataSourceResult GetTanuloGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloGridModel>(TanuloGridModel.TanuloExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(TanuloResource.TanuloExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{TanuloResource.TanuloExportFileName}.xlsx");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
data = data.Replace("_", string.Empty);
var model = JsonConvert.DeserializeObject<TanuloSearchModel>(data);
var co = model.ConvertModelToCo(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsActivTanev);
co.LekerdezesNapja = DateTime.Today;
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloItemCoList(co);
var modelList = new List<TanuloGridModel>();
foreach (var item in coList)
{
var gridModel = new TanuloGridModel(item);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
#region Tanuló mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue)]
public HttpResponseMessage DeleteTanulo([FromBody] int tanuloId)
{
try
{
TanuloLogic.TanuloDelete(tanuloId);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
catch (EntityDeleteFailedException ex)
{
var tanuloAdatCO = TanuloLogic.GetTanuloAdatCO(tanuloId);
var entityName = BusinessLogic.Extensions.NameExtensions.GetNevSorrendben("F", tanuloAdatCO.Elotag, tanuloAdatCO.CsaladiNev, tanuloAdatCO.UtoNev);
var uzenet = string.Format(ErrorResource.TanuloNemTorolhetoKapcsolatMiatt, entityName, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.IsLEPKezelo.ClaimValue)]
public HttpResponseMessage DeleteJogviszonySzuneteltetes(JogviszonySzuneteltetesDeleteModel model)
{
try
{
if (model.IsJogviszonySzuneteltetese && model.GridCnt == 1)
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.JogviszonySzunetLegalabbEgyIdoszakKotelezo);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteJogviszonySzuneteltetes(model.Id.Value);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveJogviszonySzuneteltetes(JogviszonySzuneteltetesModel model)
{
try
{
if (model.JogviszonySzuneteltetesKezdete.Value > model.JogviszonySzuneteltetesVege.Value)
ModelState.AddModelError("JogviszonySzuneteltetes1", ErrorResource.JogviszonySzuneteltetes);
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevData = tanevHelper.GetTanevInfo();
if (model.JogviszonySzuneteltetesKezdete.Value < tanevData.KezdoNap)
ModelState.AddModelError("JogviszonySzuneteltetes2", ErrorResource.JogviszonySzuneteltetesKezdeteTanevben);
if (model.JogviszonySzuneteltetesVege.Value > tanevData.UtolsoNap)
ModelState.AddModelError("JogviszonySzuneteltetes3", ErrorResource.JogviszonySzuneteltetesVegeTanevben);
if (ModelState.IsValid)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SaveJogviszonySzuneteltetes(model.TanuloId.Value, model.OsztalyId, model.JogviszonySzuneteltetesKezdete.Value, model.JogviszonySzuneteltetesVege.Value, ClaimData.KovTanevID);
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue)]
public IHttpActionResult DeleteSelectedTanulo(List<int> idList)
{
return Json(new { Message = TanuloLogic.DeleteSelectedTanulo(idList) });
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanulo(TanuloModel model)
{
try
{
var felhasznaloiNevGeneralasModja = TanuloLogic.GetFelhasznaloiNevGeneralasModja(model);
TanuloLogic.TanuloCustomValidation(ModelState, model, felhasznaloiNevGeneralasModja, OktNevelesiKategoriaEnum.EGYMI);
if (ModelState.IsValid)
{
var response = TanuloLogic.TanuloMentese(model, felhasznaloiNevGeneralasModja);
return Request.CreateResponse(HttpStatusCode.OK, response);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Check4TValidacioExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznaloiAdatokkalMarLetezikFelhasznalo);
}
}
public HttpResponseMessage SaveData(TanuloTobbesModModel model)
{
TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model);
if (ModelState.IsValid)
return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
public HttpResponseMessage PreValidation(TanuloTobbesModModel model)
{
TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
string warningMessage = TanuloLogic.ValidateOnSaveData(model);
if (!string.IsNullOrWhiteSpace(warningMessage))
{
return Request.CreateResponse(HttpStatusCode.BadRequest, warningMessage);
}
return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
#endregion Tanuló mentés/módosítás/törlés
#region Generálás
public HttpResponseMessage JelszoGeneralas(int userId, bool isGondviselo)
{
var result = TanuloLogic.JelszoGeneralas(userId, isGondviselo);
return Request.CreateResponse(HttpStatusCode.OK, result);
}
public System.Web.Mvc.JsonResult FelhasznalonevGeneralas([FromBody] FelhasznalonevGeneralasModel felhasznalonevGeneralasModel)
{
try
{
var result = new System.Web.Mvc.JsonResult { Data = TanuloLogic.FelhasznalonevGeneralas(felhasznalonevGeneralasModel) };
return result;
}
catch (UniqueKeyViolationException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik);
}
catch (UserNameExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik);
}
}
#endregion
#region Tanuló elérhetőség mentés/módosítás/törlés
public CimElerhetosegModel GetTanuloElerhetosegTel(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegTelById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegTel(CimElerhetosegModel model)
{
Kreta.Web.Classes.Utils.TelefonSzamValidation(ModelState, model.Telefon, model.TelefonTipus, TelefonszamTulajdonosEnum.Tanulo);
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegTelCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegTelMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegTel([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloElerhetosegTelTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Telefonszam, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetTanuloElerhetosegEmail(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegEmailById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegEmail(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegEmailCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegEmailMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegEmail([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloElerhetosegEmailTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.EmailCim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetTanuloElerhetosegCim(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegCim(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegCim([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Tanuló elérhetőség mentés/módosítás/törlés
#region Közösségi szolgálat mentés/módosítás/törlés
public TanuloKozszolgModel GetTanuloKozSzolg(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetKozossegiSzolgalatbyId(id);
return TanuloKozszolgModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveKozszolg(TanuloKozszolgModel model)
{
if (ModelState.IsValid)
{
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).KozossegiSzolgalatMentese(TanuloKozszolgModel.ConvertModelToCo(model));
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteKozszolg([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.KozossegiSzolgalatTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.KozossegiSzolgalat, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Közösségi szolgálat mentés/módosítás/törlés
#region Gondviselő mentés/módosítás/törlés
public TanuloModGondviseloModel GetTanuloGondviselo(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloById(id);
return TanuloModGondviseloModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviselo(TanuloModGondviseloModel model)
{
try
{
TanuloLogic.TanuloGondviseloSaveValidation(ModelState, model);
if (!ModelState.IsValid)
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
var co = TanuloModGondviseloModel.ConvertModelToCo(model);
var belepesList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloMentese(co, ClaimData.IsSzirIntezmeny, ClaimData.KovTanevID);
var fileString = TanuloLogic.GondviseloFileGenerate(model.FileLetoltesSzukseges, belepesList);
var response = new { EmailErrors = belepesList.EmailErrors, FileString = fileString };
return Request.CreateResponse(HttpStatusCode.OK, response);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message) { UnHandledException = ex.InnerException };
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGondviselo([FromBody] int id)
{
try
{
return TanuloLogic.DeleteTanulogondviselo(id);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Gondviselo, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Gondviselő mentés/módosítás/törlés
#region Gondviselő elérhetőség mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public CimElerhetosegModel GetGondviseloElerhetosegCim(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviseloCim(CimElerhetosegModel model)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var customModelState = TanuloLogic.CheckGondviseloCimCustomValidation(ModelState, model);
if (model.TanulovalEgyezik)
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
if (customModelState.IsValid)
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGondviseloCim([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Gondviselő elérhetőség mentés/módosítás/törlés
#region Felmentés mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveFelmentes(TanuloFelmentesModel model)
{
TanuloLogic.TanuloFelmentesCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var co = TanuloFelmentesModel.ConvertModelToCo(model);
if (co.IsKorabbiMulasztasokEllenorzese && co.Kezdete.Value < DateTime.Now && co.OraMentesites)
{
var mulasztasDataSet = helper.CheckModosuloKorabbiMulasztasok(co);
if (mulasztasDataSet.Tables[0].Rows.Count != 0)
{
return Request.CreateResponse(HttpStatusCode.OK, mulasztasDataSet.ToDataSourceResult(), Configuration.Formatters.JsonFormatter);
}
}
if (model.ID == 0)
{
foreach (var item in model.TantargyIdList)
{
co.TantargyId = int.Parse(item);
helper.TanuloFelmentesMentese(co, ClaimData.KovTanevID);
}
}
else
{
helper.TanuloFelmentesMentese(co, ClaimData.KovTanevID);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
var error = new StatusError(HttpStatusCode.BadRequest, e.Message);
throw error;
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public TanuloFelmentesModel GetFelmentes(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloFelmentesById(id);
return TanuloFelmentesModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteFelmentes([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloFelmentesTorles(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Felmentes, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Felmentés mentés/módosítás/törlés
#region GridHelpers
public DataSourceResult GetOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloDetailModel>(data);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetOsztalyCsoport(model.TanuloId, (int)OktNevelesiKategoriaEnum.EGYMI, !model.MegNemAktivOsztalyok);
return ds.ToDataSourceResult();
}
public DataSourceResult GetTanultTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetTanultTantargyak(tanuloId.Value, (int)OktNevelesiKategoriaEnum.EGYMI).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetTanarokTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTanarokTantargyak(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviselok(int.Parse(id), true);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloCimek(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokCimDetailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloCimekByGondviselo(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetOrarendiOrakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetOrarendiOrak(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetErtekelesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetErtekelesek(int.Parse(id), (int)OktNevelesiKategoriaEnum.EGYMI);
return ds.ToDataSourceResult();
}
public DataSourceResult GetMulasztasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetMulasztasok(int.Parse(id), (int)OktNevelesiKategoriaEnum.EGYMI);
return ds.ToDataSourceResult();
}
public DataSourceResult GetIgazolasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetIgazolasok(tanuloId.Value, null).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetFeljegyzesekHaviGrid(string id, string osztalycsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var tanuloId = SDAConvert.ToNullableInt32(id);
var osztalyId = SDAConvert.ToNullableInt32(osztalycsoportId);
DataSourceResult result = tanuloId.IsEntityId() && osztalyId.IsEntityId()
? helper.GetFeljegyzesekHavi(tanuloId.Value, osztalyId.Value).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetElozmenyekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetElozmenyek(int.Parse(id), null);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetCim(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTelefonSzam(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetFelmentesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetTanulokFelmentesei(new List<int>() { tanuloId.Value }).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetEmails(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetKozossegiSzolgalatGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetKozossegiSzolgalat(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetGondviseloUtolsoBelepesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloUtolsoBelepes(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue)]
public DataSourceResult GetJogviszonySzuneteltetesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetJogviszonySzuneteltetes(tanuloId.Value, (int)OktNevelesiKategoriaEnum.EGYMI).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetJogviszonyGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var co = helper.GetJogviszony(int.Parse(id));
return co.ToDataSourceResult(Converter.GridParameter(request));
}
#endregion GridHelpers
#region Export
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumnsTanulokLakcimmel()
{
return Json(TanuloLogic.GetColumnsTanulokLakcimmel());
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumns()
{
return Json(TanuloLogic.GetColumnsforExport());
}
[ApiRolePackageAuthorize(KretaClaimPackages.EGYMIModul.ClaimValue)]
public DataSourceResult GetTanuloExportGrid(string searchFilter, string sortColumn, string sortDir)
{
return TanuloLogic.GetDataSetTanuloExport(searchFilter, sortColumn, sortDir).ToDataSourceResult();
}
#endregion Export
[HttpGet]
public JsonResult<bool> HasGondviseloAlapertelmezettCim(int gondviseloId)
{
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var letezikGondviseloAlapertelmezettCim = tanuloHelper.HasGondviseloAlapertelmezettCim(gondviseloId);
return Json(letezikGondviseloAlapertelmezettCim);
}
}
}

View file

@ -0,0 +1,124 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
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.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue)]
public class HetesekApiController : ApiController
{
public DataSourceResult GetHetesekGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<OsztalyTanuloiSearchModel>(data);
if (!model.OsztalyCsoport.HasValue)
{
return new DataSourceResult();
}
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
if (!authorization.IsValidOsztaly(model.OsztalyCsoport.Value))
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
}
var helper = new HetesekHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var ds = helper.GetHetesek(model.OsztalyCsoport.Value);
return ds.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage ValidateHetesek(List<HetesekModel> list)
{
ValidateHetesekModel(list);
return Request.CreateResponse(HttpStatusCode.OK, list, Configuration.Formatters.JsonFormatter);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteFutureHetesInOsztalyCsoport(int id)
{
new HetesekHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteFutureHetesInOsztalyCsoport(id);
return Request.CreateResponse(HttpStatusCode.OK);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveHetesek(List<HetesekModel> list)
{
var helper = new HetesekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var osztalyCsoportId = list.FirstOrDefault().OsztalyCsoportId;
var hetesekCoList = list.ConvertAll(x => x.ToCo());
helper.SaveOrDeleteHetesekFeljegyzessel(hetesekCoList, osztalyCsoportId, ClaimData.FelhasznaloId);
return Request.CreateResponse(HttpStatusCode.OK);
}
private void ValidateHetesekModel(List<HetesekModel> list)
{
var helper = new HetesekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var model in list)
{
var errorMessage = new StringBuilder();
if (!string.IsNullOrWhiteSpace(model.Tanulok))
{
var tanuloIds = model.Tanulok.Split(',').Select(x => int.Parse(x)).ToList();
if (tanuloIds.Count > Constants.General.HetesekMaximalisSzama)
{
errorMessage.AppendFormat(ErrorResource.MaximumXHetesLehetAzYsorszamuHetnel, Constants.General.HetesekMaximalisSzama.ToString(), model.HetSorszam.ToString());
}
else
{
var tanulok = helper.GetHetSorszamokTanulokkal(model.OsztalyCsoportId, model.HetSorszam).Tables[0].AsEnumerable()
.Select(x => x.Field<int>("TanuloId")).ToList();
foreach (var tanuloId in tanuloIds)
{
if (!tanulok.Contains(tanuloId))
{
errorMessage.AppendFormat(ErrorResource.ATanuloNemTagjaAzOsztalynakASorszamuHeten, model.HetSorszam.ToString());
break;
}
}
}
}
if (errorMessage.Length > 0)
{
throw new StatusError(HttpStatusCode.BadRequest, errorMessage.ToString());
}
}
}
}
}

View file

@ -0,0 +1,868 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using System.Web.Http.Results;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Helper;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Newtonsoft.Json;
using SDA.DataProvider;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.KollegiumModul.ClaimValue)]
public class KollegiumTanuloApiController : ApiController
{
public DataSourceResult GetTanuloGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloGridModel>(TanuloGridModel.TanuloExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(TanuloResource.TanuloExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{TanuloResource.TanuloExportFileName}.xlsx");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
data = data.Replace("_", string.Empty);
var model = JsonConvert.DeserializeObject<TanuloSearchModel>(data);
var co = model.ConvertModelToCo(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsActivTanev);
co.LekerdezesNapja = DateTime.Today;
GridParameters gridParameter = Converter.GridParameter(request);
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloItemCoList(co);
var modelList = new List<TanuloGridModel>();
foreach (var item in coList)
{
var gridModel = new TanuloGridModel(item);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
#region Tanuló mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue)]
public HttpResponseMessage DeleteTanulo([FromBody] int tanuloId)
{
try
{
TanuloLogic.TanuloDelete(tanuloId);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
catch (EntityDeleteFailedException ex)
{
var tanuloAdatCO = TanuloLogic.GetTanuloAdatCO(tanuloId);
var entityName = BusinessLogic.Extensions.NameExtensions.GetNevSorrendben("F", tanuloAdatCO.Elotag, tanuloAdatCO.CsaladiNev, tanuloAdatCO.UtoNev);
var uzenet = string.Format(ErrorResource.TanuloNemTorolhetoKapcsolatMiatt, entityName, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.IsLEPKezelo.ClaimValue)]
public HttpResponseMessage DeleteJogviszonySzuneteltetes(JogviszonySzuneteltetesDeleteModel model)
{
try
{
if (model.IsJogviszonySzuneteltetese && model.GridCnt == 1)
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.JogviszonySzunetLegalabbEgyIdoszakKotelezo);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.DeleteJogviszonySzuneteltetes(model.Id.Value);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveJogviszonySzuneteltetes(JogviszonySzuneteltetesModel model)
{
try
{
if (model.JogviszonySzuneteltetesKezdete.Value > model.JogviszonySzuneteltetesVege.Value)
ModelState.AddModelError("JogviszonySzuneteltetes1", ErrorResource.JogviszonySzuneteltetes);
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevData = tanevHelper.GetTanevInfo();
if (model.JogviszonySzuneteltetesKezdete.Value < tanevData.KezdoNap)
ModelState.AddModelError("JogviszonySzuneteltetes2", ErrorResource.JogviszonySzuneteltetesKezdeteTanevben);
if (model.JogviszonySzuneteltetesVege.Value > tanevData.UtolsoNap)
ModelState.AddModelError("JogviszonySzuneteltetes3", ErrorResource.JogviszonySzuneteltetesVegeTanevben);
if (ModelState.IsValid)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SaveJogviszonySzuneteltetes(model.TanuloId.Value, model.OsztalyId, model.JogviszonySzuneteltetesKezdete.Value, model.JogviszonySzuneteltetesVege.Value, ClaimData.KovTanevID);
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue)]
public IHttpActionResult DeleteSelectedTanulo(List<int> idList)
{
return Json(new { Message = TanuloLogic.DeleteSelectedTanulo(idList) });
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanulo(TanuloModel model)
{
try
{
var felhasznaloiNevGeneralasModja = TanuloLogic.GetFelhasznaloiNevGeneralasModja(model);
TanuloLogic.TanuloCustomValidation(ModelState, model, felhasznaloiNevGeneralasModja, OktNevelesiKategoriaEnum.Kollegium);
if (ModelState.IsValid)
{
var response = TanuloLogic.TanuloMentese(model, felhasznaloiNevGeneralasModja);
return Request.CreateResponse(HttpStatusCode.OK, response);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Check4TValidacioExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznaloiAdatokkalMarLetezikFelhasznalo);
}
}
public HttpResponseMessage SaveData(TanuloTobbesModModel model)
{
TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model);
if (ModelState.IsValid)
return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
public HttpResponseMessage PreValidation(TanuloTobbesModModel model)
{
TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
string warningMessage = TanuloLogic.ValidateOnSaveData(model);
if (!string.IsNullOrWhiteSpace(warningMessage))
{
return Request.CreateResponse(HttpStatusCode.BadRequest, warningMessage);
}
return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
#endregion Tanuló mentés/módosítás/törlés
#region Generálás
public HttpResponseMessage JelszoGeneralas(int userId, bool isGondviselo)
{
var result = TanuloLogic.JelszoGeneralas(userId, isGondviselo);
return Request.CreateResponse(HttpStatusCode.OK, result);
}
public System.Web.Mvc.JsonResult FelhasznalonevGeneralas([FromBody] FelhasznalonevGeneralasModel felhasznalonevGeneralasModel)
{
try
{
var result = new System.Web.Mvc.JsonResult { Data = TanuloLogic.FelhasznalonevGeneralas(felhasznalonevGeneralasModel) };
return result;
}
catch (UniqueKeyViolationException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik);
}
catch (UserNameExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik);
}
}
#endregion
#region Tanuló elérhetőség mentés/módosítás/törlés
public CimElerhetosegModel GetTanuloElerhetosegTel(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegTelById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegTel(CimElerhetosegModel model)
{
Kreta.Web.Classes.Utils.TelefonSzamValidation(ModelState, model.Telefon, model.TelefonTipus, TelefonszamTulajdonosEnum.Tanulo);
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegTelCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegTelMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegTel([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloElerhetosegTelTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Telefonszam, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetTanuloElerhetosegEmail(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegEmailById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegEmail(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegEmailCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegEmailMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegEmail([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloElerhetosegEmailTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.EmailCim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetTanuloElerhetosegCim(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegCim(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegCim([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Tanuló elérhetőség mentés/módosítás/törlés
#region Közösségi szolgálat mentés/módosítás/törlés
public TanuloKozszolgModel GetTanuloKozSzolg(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetKozossegiSzolgalatbyId(id);
return TanuloKozszolgModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveKozszolg(TanuloKozszolgModel model)
{
if (ModelState.IsValid)
{
new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).KozossegiSzolgalatMentese(TanuloKozszolgModel.ConvertModelToCo(model));
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteKozszolg([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.KozossegiSzolgalatTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.KozossegiSzolgalat, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Közösségi szolgálat mentés/módosítás/törlés
#region Gondviselő mentés/módosítás/törlés
public TanuloModGondviseloModel GetTanuloGondviselo(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloById(id);
return TanuloModGondviseloModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviselo(TanuloModGondviseloModel model)
{
try
{
TanuloLogic.TanuloGondviseloSaveValidation(ModelState, model);
if (!ModelState.IsValid)
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
var co = TanuloModGondviseloModel.ConvertModelToCo(model);
var belepesList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloMentese(co, ClaimData.IsSzirIntezmeny, ClaimData.KovTanevID);
var fileString = TanuloLogic.GondviseloFileGenerate(model.FileLetoltesSzukseges, belepesList);
var response = new { EmailErrors = belepesList.EmailErrors, FileString = fileString };
return Request.CreateResponse(HttpStatusCode.OK, response);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message) { UnHandledException = ex.InnerException };
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGondviselo([FromBody] int id)
{
try
{
return TanuloLogic.DeleteTanulogondviselo(id);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Gondviselo, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Gondviselő mentés/módosítás/törlés
#region Gondviselő elérhetőség mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public CimElerhetosegModel GetGondviseloElerhetosegCim(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviseloCim(CimElerhetosegModel model)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var customModelState = TanuloLogic.CheckGondviseloCimCustomValidation(ModelState, model);
if (model.TanulovalEgyezik)
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
if (customModelState.IsValid)
{
var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model);
helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteGondviseloCim([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Gondviselő elérhetőség mentés/módosítás/törlés
#region Felmentés mentés/módosítás/törlés
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveFelmentes(TanuloFelmentesModel model)
{
TanuloLogic.TanuloFelmentesCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var co = TanuloFelmentesModel.ConvertModelToCo(model);
if (co.IsKorabbiMulasztasokEllenorzese && co.Kezdete.Value < DateTime.Now && co.OraMentesites)
{
var mulasztasDataSet = helper.CheckModosuloKorabbiMulasztasok(co);
if (mulasztasDataSet.Tables[0].Rows.Count != 0)
{
return Request.CreateResponse(HttpStatusCode.OK, mulasztasDataSet.ToDataSourceResult(), Configuration.Formatters.JsonFormatter);
}
}
if (model.ID == 0)
{
foreach (var item in model.TantargyIdList)
{
co.TantargyId = int.Parse(item);
helper.TanuloFelmentesMentese(co, ClaimData.KovTanevID);
}
}
else
{
helper.TanuloFelmentesMentese(co, ClaimData.KovTanevID);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
var error = new StatusError(HttpStatusCode.BadRequest, e.Message);
throw error;
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public TanuloFelmentesModel GetFelmentes(int id)
{
var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloFelmentesById(id);
return TanuloFelmentesModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteFelmentes([FromBody] int id)
{
try
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.TanuloFelmentesTorles(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Felmentes, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#endregion Felmentés mentés/módosítás/törlés
#region GridHelpers
public DataSourceResult GetOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloDetailModel>(data);
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetOsztalyCsoport(model.TanuloId, (int)OktNevelesiKategoriaEnum.Kollegium, !model.MegNemAktivOsztalyok);
return ds.ToDataSourceResult();
}
public DataSourceResult GetTanultTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetTanultTantargyak(tanuloId.Value, (int)OktNevelesiKategoriaEnum.Kollegium).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetTanarokTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTanarokTantargyak(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviselok(int.Parse(id), true);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloCimek(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetGondviselokCimDetailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloCimekByGondviselo(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetOrarendiOrakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetOrarendiOrak(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetErtekelesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetErtekelesek(int.Parse(id), (int)OktNevelesiKategoriaEnum.Kollegium);
return ds.ToDataSourceResult();
}
public DataSourceResult GetMulasztasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetMulasztasok(int.Parse(id), (int)OktNevelesiKategoriaEnum.Kollegium);
return ds.ToDataSourceResult();
}
public DataSourceResult GetIgazolasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetIgazolasok(tanuloId.Value, null).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetFeljegyzesekHaviGrid(string id, string osztalycsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
var tanuloId = SDAConvert.ToNullableInt32(id);
var osztalyId = SDAConvert.ToNullableInt32(osztalycsoportId);
DataSourceResult result = tanuloId.IsEntityId() && osztalyId.IsEntityId()
? helper.GetFeljegyzesekHavi(tanuloId.Value, osztalyId.Value).ToDataSourceResult()
: new DataSourceResult();
return result;
}
public DataSourceResult GetElozmenyekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetElozmenyek(int.Parse(id), null);
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetCim(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTelefonSzam(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetFelmentesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetTanulokFelmentesei(new List<int> { tanuloId.Value }).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetEmails(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetKozossegiSzolgalatGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetKozossegiSzolgalat(int.Parse(id));
return ds.ToDataSourceResult();
}
public DataSourceResult GetGondviseloUtolsoBelepesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetGondviseloUtolsoBelepes(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue)]
public DataSourceResult GetJogviszonySzuneteltetesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
var tanuloId = SDAConvert.ToNullableInt32(id);
DataSourceResult result = tanuloId.IsEntityId()
? helper.GetJogviszonySzuneteltetes(tanuloId.Value, (int)OktNevelesiKategoriaEnum.Kollegium).ToDataSourceResult()
: new DataSourceResult();
return result;
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
public DataSourceResult GetJogviszonyGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var co = helper.GetJogviszony(int.Parse(id));
return co.ToDataSourceResult(Converter.GridParameter(request));
}
#endregion GridHelpers
#region Export
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumnsTanulokLakcimmel()
{
return Json(TanuloLogic.GetColumnsTanulokLakcimmel());
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue)]
public JsonResult<List<ExportColumn>> GetExportColumns()
{
return Json(TanuloLogic.GetColumnsforExport());
}
[ApiRolePackageAuthorize(KretaClaimPackages.KollegiumModul.ClaimValue)]
public DataSourceResult GetTanuloExportGrid(string searchFilter, string sortColumn, string sortDir)
{
return TanuloLogic.GetDataSetTanuloExport(searchFilter, sortColumn, sortDir).ToDataSourceResult();
}
#endregion Export
[HttpGet]
public JsonResult<bool> HasGondviseloAlapertelmezettCim(int gondviseloId)
{
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var letezikGondviseloAlapertelmezettCim = tanuloHelper.HasGondviseloAlapertelmezettCim(gondviseloId);
return Json(letezikGondviseloAlapertelmezettCim);
}
}
}

View file

@ -0,0 +1,65 @@
using System.Web.Http;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue)]
public class OsztalyTanuloiAdatokApiController : ApiController
{
public DataSourceResult GetTanuloiAlapadatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var osztalyCsoportId = model?.OsztalyCsoportId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiAlapadatokGrid(tanuloId.Value, osztalyCsoportId.Value).ToDataSourceResult() :
new DataSourceResult();
return result;
}
public DataSourceResult GetTanuloiTanugyiadatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var osztalyCsoportId = model?.OsztalyCsoportId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiTanugyiadatokGrid(tanuloId.Value, osztalyCsoportId.Value).ToDataSourceResult() :
new DataSourceResult();
return result;
}
public DataSourceResult GetTanuloiEgyebAdatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var osztalyCsoportId = model?.OsztalyCsoportId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiEgyebAdatokGrid(tanuloId.Value, osztalyCsoportId).ToDataSourceResult() :
new DataSourceResult();
return result;
}
public DataSourceResult GetTanuloiGondviseloAdatokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloiAdatokModel>(data);
var tanuloId = model?.TanuloId;
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSourceResult result = tanuloId.IsEntityId() ?
helper.GetTanuloiGondviseloAdatokGrid(tanuloId.Value).ToDataSourceResult() :
new DataSourceResult();
return result;
}
}
}

View file

@ -0,0 +1,65 @@
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.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.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue)]
public class OsztalyTanuloiApiController : ApiController
{
public DataSourceResult GetOsztalyTanuloiGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<OsztalyTanuloiSearchModel>(data);
if (!model.OsztalyCsoport.HasValue)
{
return new DataSourceResult();
}
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
if (!authorization.IsValidOsztaly(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();
}
}
}

View file

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Web.Http;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue)]
public class OsztalyTanuloiGondviselokApiController : ApiController
{
public DataSourceResult GetOsztalyTanuloiGondviselokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<OsztalyTanuloiGondviselokSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyTanuloiGondviselokCoList(model.ConvertToCo(), ClaimData.IsSzuperOsztalyfonok, ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Evfolyamfelelos.ClaimValue));
var modelList = new List<OsztalyokTanuloiGondviselokGridModel>();
foreach (var co in coList)
{
var gridModel = new OsztalyokTanuloiGondviselokGridModel(co);
modelList.Add(gridModel);
}
return modelList.ToDataSourceResult(gridParameter);
}
}
}

View file

@ -0,0 +1,282 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Client.KGR;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Helper;
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.Adminisztrator.ClaimValue)]
public class SzakkepzesiJuttatasokApiController : ApiController
{
private readonly IKGRClient kgrClient;
public SzakkepzesiJuttatasokApiController(IKGRClient kgrClient)
{
this.kgrClient = kgrClient ?? throw new ArgumentNullException(nameof(kgrClient));
}
public DataSourceResult GetTanuloSzakkepzesiOsztondijGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetTanuloSzakkepzesiOsztondijGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
return modelList.ToDataSourceResult(gridParameter);
}
private (GridParameters gridParameter, List<TanuloSzakkepzesiOsztondijGridModel> modelList) GetTanuloSzakkepzesiOsztondijGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloSzakkepzesiOsztondijSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var keresesCo = model.ConvertModelToCo();
keresesCo.FeladatKategoriaId = OktNevelesiKategoriaEnum.NevelesOktatas.AsInt();
keresesCo.LekerdezesNapja = DateTime.Today;
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSzakkepzesiOsztondijCoList(keresesCo);
var modelList = new List<TanuloSzakkepzesiOsztondijGridModel>();
foreach (var co in coList)
{
var gridModel = new TanuloSzakkepzesiOsztondijGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
public DataSourceResult GetTanuloEgyszeriPalyakezdesiGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetEgyszeriPalyakezdesiJuttatasGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetSzakkepzesiOsztondijExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetTanuloSzakkepzesiOsztondijGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloSzakkepzesiOsztondijGridModel>(TanuloSzakkepzesiOsztondijGridModel.SzakkepzesiOsztondijExportAttributeId);
var memoryStream = SzakkepzesiJuttatasokLogic.GetSzakkepzesiOszetondijExport(SzakkepzesiJuttatasokResource.ExportSzakkepzesiOsztondijSheetName, simpleExportColumnCos, modelList);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{SzakkepzesiJuttatasokResource.ExportTanuloSzakkepzesiOsztondijFilename}{DateTime.Now:yyyy_MM_dd_HHmm}{SzakkepzesiJuttatasokResource.ExportTanuloFileExtension}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
public HttpResponseMessage GetEgyszeriPalyakezdesiJuttatasExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetEgyszeriPalyakezdesiJuttatasGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloEgyszeriPalyakezdesiJuttatasGridModel>(TanuloSzakkepzesiOsztondijGridModel.EgyszeriPalyakezdesiJuttatasExportAttributeId);
var memoryStream = SzakkepzesiJuttatasokLogic.GetEgyszeriPalyakezdesiJuttatasExport(SzakkepzesiJuttatasokResource.ExportEgyszeriPalyakezdesiJuttatasSheetName, simpleExportColumnCos, modelList);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{SzakkepzesiJuttatasokResource.ExportTanuloEgyszeriPalyakezdesiJutattasFilename}{DateTime.Now:yyyy_MM_dd_HHmm}{SzakkepzesiJuttatasokResource.ExportTanuloFileExtension}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloEgyszeriPalyakezdesiJuttatasGridModel> modelList) GetEgyszeriPalyakezdesiJuttatasGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloEgyszeriPalyakezdesiJuttatasSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var keresesCo = model.ConvertModelToCo();
keresesCo.FeladatKategoriaId = OktNevelesiKategoriaEnum.NevelesOktatas.AsInt();
keresesCo.LekerdezesNapja = DateTime.Today;
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyszeriPalyakezdesiJuttatasCoList(keresesCo);
var modelList = new List<TanuloEgyszeriPalyakezdesiJuttatasGridModel>();
foreach (var co in coList)
{
var gridModel = new TanuloEgyszeriPalyakezdesiJuttatasGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
public DataSourceResult GetTanuloApaczaiIgenylesekGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList) = GetApaczaiIgenylesekGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetApaczaiIgenylesekExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetApaczaiIgenylesekGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloApaczaiOsztondijIgenylesekGridModel>(TanuloApaczaiOsztondijBaseGridModel.ApaczaiIgenylesekExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(SzakkepzesiJuttatasokResource.ExportApaczaiIgenylesekSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{SzakkepzesiJuttatasokResource.ExportApaczaiIgenylesekFilename}{DateTime.Now:yyyy_MM_dd_HHmm}{SzakkepzesiJuttatasokResource.ExportTanuloFileExtension}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloApaczaiOsztondijIgenylesekGridModel> modelList) GetApaczaiIgenylesekGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloApaczaiOsztondijIgenylesekSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIgenylesekCoList(kgrClient, model.ConvertToCo(), ClaimData.IntezmenyGuid.Value);
var modelList = new List<TanuloApaczaiOsztondijIgenylesekGridModel>();
foreach (var co in coList)
{
var gridModel = new TanuloApaczaiOsztondijIgenylesekGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
public DataSourceResult GetTanuloApaczaiTanuloiListaGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList) = GetApaczaiTanuloiListaGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetApaczaiTanuloiListaExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetApaczaiTanuloiListaGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloApaczaiOsztondijTanuloiListaGridModel>(TanuloApaczaiOsztondijBaseGridModel.ApaczaiTanuloiListaExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(SzakkepzesiJuttatasokResource.ExportApaczaiTanuloiListaSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{SzakkepzesiJuttatasokResource.ExportApaczaiTanuloiListaFilename}{DateTime.Now:yyyy_MM_dd_HHmm}{SzakkepzesiJuttatasokResource.ExportTanuloFileExtension}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloApaczaiOsztondijTanuloiListaGridModel> modelList) GetApaczaiTanuloiListaGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloApaczaiOsztondijTanuloiListaSearchModel>(data);
var keresesCo = model.ConvertModelToCo();
keresesCo.FeladatKategoriaId = OktNevelesiKategoriaEnum.NevelesOktatas.AsInt();
keresesCo.LekerdezesNapja = DateTime.Today;
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloiListaCoList(kgrClient, keresesCo, ClaimData.IntezmenyGuid.Value);
var modelList = new List<TanuloApaczaiOsztondijTanuloiListaGridModel>();
modelList.AddRange(coList.Select(co => new TanuloApaczaiOsztondijTanuloiListaGridModel(co)));
return (gridParameter, modelList);
}
[ApiRolePackageDenyAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public DataSourceResult GetTanuloApaczaiKifizetesekGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetApaczaiKifizetesekGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
return modelList.ToDataSourceResult(gridParameter);
}
[ApiRolePackageDenyAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public HttpResponseMessage GetApaczaiKifizetesekExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetApaczaiKifizetesekGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloApaczaiOsztondijKifizetesekGridModel>(TanuloApaczaiOsztondijBaseGridModel.ApaczaiKifizetesekExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(SzakkepzesiJuttatasokResource.ExportApaczaiKifizetésekSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{SzakkepzesiJuttatasokResource.ExportApaczaiKifizetesekFilename}{DateTime.Now:yyyy_MM_dd_HHmm}{SzakkepzesiJuttatasokResource.ExportTanuloFileExtension}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloApaczaiOsztondijKifizetesekGridModel> modelList) GetApaczaiKifizetesekGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloApaczaiOsztondijKifizetesekSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetKifizetesekCoList(kgrClient, model.ConvertToCo());
var modelList = new List<TanuloApaczaiOsztondijKifizetesekGridModel>();
foreach (var co in coList)
{
var gridModel = new TanuloApaczaiOsztondijKifizetesekGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
}
}

View file

@ -0,0 +1,30 @@
using System.Data;
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.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
public class TanarNemTanitottTanulokApiController : ApiController
{
public DataSourceResult GetTanarNemTanitottTanulokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanarNemTanitottTanulokSearchModel>(data);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
DataSet ds = helper.GetTanarNemTanitottTanulok(model.OsztalyCsoportID.HasValue ? model.OsztalyCsoportID : null);
return ds.ToDataSourceResult();
}
}
}

View file

@ -0,0 +1,35 @@
using System.Data;
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.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue)]
public class TanarTanitottTanulokApiController : ApiController
{
public DataSourceResult GetTanarTanitottTanulokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanarTanitottTanulokSearchModel>(data);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
DataSet ds = helper.GetTanarTanulok(
model.Foglalkozas,
model.FoglalkozasTipus,
model.CsakBukasraAllok ?? false,
model.FeladatKategoriaId
);
return ds.ToDataSourceResult();
}
}
}

View file

@ -0,0 +1,134 @@
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Client.KGR;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Tanulo.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Tanulo.ClaimValue)]
public class TanuloApaczaiApiController : ApiController
{
private readonly IKGRClient _kgrClient;
private readonly IKretaAuthorization _authorization;
public TanuloApaczaiApiController(IKGRClient kgrClient, IKretaAuthorization authorization)
{
_kgrClient = kgrClient ?? throw new ArgumentNullException(nameof(kgrClient));
_authorization = authorization ?? throw new ArgumentNullException(nameof(authorization));
}
[HttpPost]
public HttpResponseMessage CreatePalyazat(TanuloApaczaiPalyazatBenyujtasContentModel model)
{
if (!_authorization.IsValidTanuloApaczai() && DateTime.Now > Core.Constants.ApaczaiVegeDatum)
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
}
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var intezmenyHelper = new IntezmenyHelper(connectionType);
var intezmenyAdatok = intezmenyHelper.GetIntezmenyiAdatok();
var co = model.ConvertToCo();
co.FenntartoAzonosito = intezmenyAdatok.FenntartoAzonosito;
co.FenntartoNev = "-";
co.IntezmenyEgyediAzonosito = intezmenyAdatok.IntezmenyGuid;
co.IntezmenyNev = intezmenyAdatok.Nev;
co.IntezmenyAzonosito = intezmenyAdatok.IntezmenyAzonosito;
co.IdpEgyediAzonosito = ClaimData.FelhasznaloIdpEgyediAzonosito;
co.ModositoId = ClaimData.FelhasznaloId;
co.ModositoNev = ClaimData.FelhasznaloNev;
if (model.AtlagokModel.PalyazatStatusz == ApaczaiPalyazatStatuszEnum.AdategyeztetesreVisszakuldve || model.AtlagokModel.PalyazatStatusz == ApaczaiPalyazatStatuszEnum.FelulvizsgalatrolAdategyeztetesreVisszakuldve)
{
try
{
var helper = new TanuloApaczaiHelper(connectionType);
var kgrRequestModel = helper.GetApaczaiPalyazatFelvetelRequest(co, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
if (!helper.ValidateTanuloMentor(kgrRequestModel))
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.PalyazatbenyujtasTiltottMentorAdatHiany);
}
if (helper.PalyazatAdategyeztetes(_kgrClient, kgrRequestModel))
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatBenyujtas);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, $"{ErrorResource.SikertelenApaczaiPalyazatBenyujtas} ({ex.Message})");
}
}
try
{
var helper = new TanuloApaczaiHelper(connectionType);
var kgrRequestModel = helper.GetApaczaiPalyazatFelvetelRequest(co, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
if(!helper.ValidateTanuloMentor(kgrRequestModel))
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.PalyazatbenyujtasTiltottMentorAdatHiany);
}
if (helper.CreatePalyazat(_kgrClient, kgrRequestModel))
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatBenyujtas);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, $"{ErrorResource.SikertelenApaczaiPalyazatBenyujtas} ({ex.Message})");
}
}
[HttpGet]
public HttpResponseMessage GetPalyazatVisszavonas()
{
try
{
if (new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetPalyazatVisszavonas(_kgrClient, ClaimData.FelhasznaloIdpEgyediAzonosito))
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatVisszavonas);
}
catch (Exception ex)
{
if (ex.Data["ApaczaiHiba"] != null)
{
throw new StatusError(HttpStatusCode.BadRequest, null) { Json = ex.Data["ApaczaiHiba"], };
}
throw new StatusError(HttpStatusCode.BadRequest, ex.Message, ex);
}
}
[HttpPost]
public HttpResponseMessage Fellebbezes([FromBody] string indoklas)
{
if (indoklas.Length > Core.Constants.MinMaxValues.MaxApaczaiFellebbezesSzovegHossz)
{
throw new StatusError(HttpStatusCode.BadRequest, string.Format(ErrorResource.ApaczaiFellebezesSzovegMaximalisHossz, Core.Constants.MinMaxValues.MaxApaczaiFellebbezesSzovegHossz));
}
try
{
if (new TanuloApaczaiHelper(ConnectionTypeExtensions.GetSessionConnectionType()).Fellebbezes(_kgrClient, ClaimData.FelhasznaloIdpEgyediAzonosito, indoklas))
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.SikertelenApaczaiPalyazatFellebbezesBenyujtas);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, $"{ErrorResource.SikertelenApaczaiPalyazatFellebbezesBenyujtas}{(!string.IsNullOrWhiteSpace(ex.Message) ? $" ({ex.Message})" : string.Empty)}");
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,123 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.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.Ellenorzo.ClaimValue,
KretaClaimPackages.Tanulo.ClaimValue,
KretaClaimPackages.Gondviselo.ClaimValue)]
public class TanuloBejelentettSzamonkeresekApiController : ApiController
{
public DataSourceResult GetBejelentettSzamonkeresekGrid(string data, DataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<BejelentettSzamonkeresekGridModel>(BejelentettSzamonkeresekGridModel.BejelentettSzamonkeresekExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.BejelentettSzamonkeresekExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.BejelentettSzamonkeresekExportFileName}_{DateTime.Now:yyyy_MM_dd}.xlsx");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<BejelentettSzamonkeresekGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<BejelentettSzamonkeresekSearchModel>(data);
model.TanuloId = ClaimData.FelhasznaloId;
var gridParameter = Converter.GridParameter(request);
var coList = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBejelentettSzamonkeresekCoList(model.ConvertToCo());
var modelList = new List<BejelentettSzamonkeresekGridModel>();
foreach (var co in coList)
{
var gridModel = new BejelentettSzamonkeresekGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
public DataSourceResult GetBejelentettSzamonkeresekExportGrid(string searchFilter, string sortColumn, string sortDir)
{
BejelentettSzamonkeresekSearchModel model = JsonConvert.DeserializeObject<BejelentettSzamonkeresekSearchModel>(searchFilter);
model.TanuloId = ClaimData.FelhasznaloId;
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var ds = helper.GetBejelentettSzamonkeresekGrid(model.ConvertToCo());
ds.Tables[0].Columns.Add("SzamonkeresDatumaStr", typeof(string));
ds.Tables[0].Columns.Add("BejelentesDatumaStr", typeof(string));
foreach (DataRow row in ds.Tables[0].Rows)
{
var dt = DateTime.Parse(row["SzamonkeresDatuma"].ToString());
row["SzamonkeresDatumaStr"] = dt.ToString("yyyy.MM.dd.");
var dt2 = DateTime.Parse(row["BejelentesDatuma"].ToString());
row["BejelentesDatumaStr"] = dt2.ToString("yyyy.MM.dd.");
}
if (sortColumn != "-" && sortDir != "-")
{
DataSet result = new DataSet();
ds.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper();
result.Tables.Add(ds.Tables[0].DefaultView.ToTable());
return result.ToDataSourceResult();
}
return ds.ToDataSourceResult();
}
[HttpPost]
public System.Web.Http.Results.JsonResult<List<ExportColumn>> GetExportColumns()
{
List<ExportColumn> Items = new List<ExportColumn>();
Items.Add(new ExportColumn() { Field = "SzamonkeresDatumaStr", Title = OrarendResource.Datum });
Items.Add(new ExportColumn() { Field = "HetNapja_DNAME", Title = OrarendResource.HetNapja });
Items.Add(new ExportColumn() { Field = "Oraszam", Title = OrarendResource.Oraszam });
Items.Add(new ExportColumn() { Field = "TargyNev", Title = OrarendResource.Targy });
Items.Add(new ExportColumn() { Field = "OsztalyNev", Title = OrarendResource.OsztalyCsoport });
Items.Add(new ExportColumn() { Field = "TanarNev", Title = OrarendResource.Tanar });
Items.Add(new ExportColumn() { Field = "ErtekelesModNev", Title = OrarendResource.SzamonkeresMod });
Items.Add(new ExportColumn() { Field = "SzamonkeresMegnevezes", Title = OrarendResource.SzamonkeresMegnevezes });
Items.Add(new ExportColumn() { Field = "BejelentesDatumaStr", Title = OrarendResource.BejelentesDatuma });
return Json(Items);
}
}
}

View file

@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
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.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Framework.Util;
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.Tanulo.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue)]
public class TanuloHaziFeladatApiController : ApiController
{
public DataSourceResult GetTanulotHaziFeladatGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloHaziFeladatSearchModel>(data);
var co = model.ConvertModelToCo();
var helper = new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTanuloHaziFeladat(co, null, false, ClaimData.IsTanuloOrGondviselo);
return ds.ToDataSourceResult();
}
public HttpResponseMessage GetHazifeladatExportGrid(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloHaziFeladatGridModel>(TanuloHaziFeladatGridModel.TanuloHaziFeladatExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(ImportExportCommonResource.HaziFeladatok, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.HazifeladatExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<TanuloHaziFeladatGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloHaziFeladatSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var co = model.ConvertModelToCo();
var helper = new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var ds = helper.GetTanuloHaziFeladat(co, null, false, ClaimData.IsTanuloOrGondviselo);
var modelList = new List<TanuloHaziFeladatGridModel>();
foreach (var row in ds.Tables[0].AsEnumerable())
{
var gridModel = new TanuloHaziFeladatGridModel(row);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
}
}

View file

@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
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.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Framework.Util;
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.Adminisztrator.ClaimValue)]
public class TanuloJogviszonyAdatokApiController : ApiController
{
[HttpPost]
public DataSourceResult GetJogviszonyAdatokGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
{
var (gridParameter, modelList) = GetGridData(request.data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList) = GetGridData(data, request);
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<JogviszonyAdatokGridModel>(JogviszonyAdatokGridModel.TanulokJogviszonyaAdataiExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(TanuloResource.TanuloJogviszonyAdataiExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{TanuloResource.TanuloJogviszonyAdataiExportSheetName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}");
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<JogviszonyAdatokGridModel> modelList) GetGridData(string data, DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TanuloJogviszonyAdatokSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloJogviszonyAdatokCoList(model.ConvertToCo());
var modelList = new List<JogviszonyAdatokGridModel>();
foreach (var co in coList)
{
var gridModel = new JogviszonyAdatokGridModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList);
}
}
}

View file

@ -0,0 +1,24 @@
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Tanulo.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.CsokkentettGondviselo.ClaimValue)]
public class TanulotTanitoTanarokApiController : ApiController
{
public DataSourceResult GetTanulotTanitoTanarGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTanulotTanitoTanarok(ClaimData.FelhasznaloId);
return ds.ToDataSourceResult();
}
}
}