828 lines
39 KiB
C#
828 lines
39 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|