233 lines
13 KiB
C#
233 lines
13 KiB
C#
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.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Enums;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.OsztalyCsoport.Logic;
|
|
using Kreta.Web.Areas.OsztalyCsoport.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.OsztalyCsoport.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class BesorolasModOsztalybolKiirtTanulokApiController : ApiController
|
|
{
|
|
public DataSourceResult GetBesorolasModOsztalybolKiirtTanulokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var model = JsonConvert.DeserializeObject<AktTanevBesorolasSearchModel>(data);
|
|
var co = model.ConvertToCo();
|
|
var gridParameter = Converter.GridParameter(request);
|
|
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var coList = helper.GetKiirtTanulokEsOsztalyokGridItemCoList(co);
|
|
|
|
var modelList = new List<BesorolasModOsztalyGridModel>();
|
|
|
|
foreach (var item in coList)
|
|
{
|
|
var gridModel = new BesorolasModOsztalyGridModel(item);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public BesorolasModOsztalybolKiirtTanulokModel GetTanuloData(int tanuloCsoportId)
|
|
{
|
|
var model = new BesorolasModOsztalybolKiirtTanulokModel(tanuloCsoportId);
|
|
|
|
var intezmenyHelper = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
model.AlapadatModel.IsSzakkepzo = intezmenyHelper.GetIntezmenyiAdatok().IsSzakkepzo;
|
|
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var tanevCo = tanevHelper.GetTanevInfo();
|
|
model.AlapadatModel.KezdoNap = tanevCo.KezdoNap;
|
|
model.AlapadatModel.UtolsoNap = tanevCo.UtolsoNap;
|
|
model.AlapadatModel.UtolsoTanitasiNap = tanevCo.UtolsoTanitasiNap;
|
|
|
|
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var tanuloCsoportCo = tanuloHelper.GetTanuloCsoportById(tanuloCsoportId);
|
|
var tanuloJegyzekAdatok = tanuloHelper.GetTanuloJegyzekadatok(tanuloCsoportId, tanuloCsoportCo.TanuloId, tanuloCsoportCo.OsztalyCsoportId, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
|
|
|
|
model.AlapadatModel.TanuloCsoportId = tanuloCsoportCo.ID;
|
|
model.AlapadatModel.TanuloId = tanuloCsoportCo.TanuloId;
|
|
model.AlapadatModel.OsztalyId = tanuloCsoportCo.OsztalyCsoportId;
|
|
|
|
model.AlapadatModel.OsztalyNev = tanuloCsoportCo.OsztalyNev;
|
|
model.AlapadatModel.TanuloNev = tanuloHelper.GetTanuloNev(tanuloCsoportCo.TanuloId);
|
|
model.AlapadatModel.BelepesDatum = tanuloCsoportCo.BelepDatum.Value;
|
|
model.AlapadatModel.KilepesDatum = tanuloCsoportCo.KilepDatum;
|
|
model.AlapadatModel.NaploSorszam = tanuloCsoportCo.NaploSorszam;
|
|
model.AlapadatModel.TanuloEvfolyamTipusId = tanuloCsoportCo.TanuloEvfolyamTipusId;
|
|
model.AlapadatModel.IsOsszevontOsztaly = tanuloCsoportCo.IsOsszevontOsztaly;
|
|
model.AlapadatModel.TorzslapSzam = tanuloCsoportCo.TorzslapSzam;
|
|
model.AlapadatModel.Megjegyzes = tanuloCsoportCo.Megjegyzes;
|
|
model.AlapadatModel.BefogadoIntezmeny = tanuloCsoportCo.BefogadoIntezmeny;
|
|
model.AlapadatModel.AgazatId = tanuloCsoportCo.AgazatId;
|
|
model.AlapadatModel.SzakmacsoportId = tanuloCsoportCo.SzakmacsoportId;
|
|
model.AlapadatModel.SzakkepesitesId = tanuloCsoportCo.SzakkepesitesId;
|
|
model.AlapadatModel.ReszSzakkepesitesId = tanuloCsoportCo.ReszSzakkepesitesId;
|
|
model.AlapadatModel.TantervId = tanuloCsoportCo.TantervId;
|
|
model.AlapadatModel.JogviszonyTipusId = tanuloCsoportCo.JogviszonyTipusId;
|
|
model.AlapadatModel.AgazatUjSzktTipusId = tanuloCsoportCo.AgazatUjSzktTipusId;
|
|
model.AlapadatModel.SzakmaTipusId = tanuloCsoportCo.SzakmaTipusId;
|
|
model.AlapadatModel.SzakmairanyTipusId = tanuloCsoportCo.SzakmairanyTipusId;
|
|
model.AlapadatModel.SzakiranyNktTipusId = tanuloCsoportCo.SzakiranyNktTipusId;
|
|
model.AlapadatModel.SzakkepesitesNktTipusId = tanuloCsoportCo.SzakkepesitesNktTipusId;
|
|
model.AlapadatModel.TanulmanyiTeruletNktTipusId = tanuloCsoportCo.TanulmanyiTeruletNktTipusId;
|
|
model.AlapadatModel.AgazatReszSzakmaTipusId = tanuloCsoportCo.AgazatReszSzakmaTipusId;
|
|
model.AlapadatModel.ReszSzakmaTipusId = tanuloCsoportCo.ReszSzakmaTipusId;
|
|
model.AlapadatModel.SzakmaReszSzakmaTipusId = tanuloCsoportCo.SzakmaReszSzakmaTipusId;
|
|
|
|
model.MulasztasokModel.HozottIgazolatlanHianyzas = tanuloCsoportCo.HozottIgazolatlanHianyzas;
|
|
model.MulasztasokModel.HozottIgazolatlanKesesPercben = tanuloCsoportCo.HozottIgazolatlanKesesPercben;
|
|
model.MulasztasokModel.HozottIgazoltHianyzas = tanuloCsoportCo.HozottIgazoltHianyzas;
|
|
model.MulasztasokModel.HozottIgazoltKesesPercben = tanuloCsoportCo.HozottIgazoltKesesPercben;
|
|
|
|
model.AlapadatModel.IsSzakkepzeses = tanuloJegyzekAdatok.IsSzakkepzeses;
|
|
model.AlapadatModel.IsNKTSzakkepzeses = tanuloJegyzekAdatok.IsNKTSzakkepzeses;
|
|
model.AlapadatModel.IsMuveszetiSzakGimnazium = tanuloJegyzekAdatok.IsMuveszetiSzakGimnazium;
|
|
model.AlapadatModel.IsAgazatUjSzktTipusModificationEnabled = tanuloJegyzekAdatok.IsAgazatUjSzktTipusModificationEnabled;
|
|
model.AlapadatModel.IsSzakmaTipusModificationEnabled = tanuloJegyzekAdatok.IsSzakmaTipusModificationEnabled;
|
|
model.AlapadatModel.IsSzakmairanyTipusModificationEnabled = tanuloJegyzekAdatok.IsSzakmairanyTipusModificationEnabled;
|
|
model.AlapadatModel.IsSzakmacsoportModificationEnabled = tanuloJegyzekAdatok.IsSzakmacsoportModificationEnabled;
|
|
model.AlapadatModel.IsAgazatModificationEnabled = tanuloJegyzekAdatok.IsAgazatModificationEnabled;
|
|
model.AlapadatModel.IsSzakkepesitesModificationEnabled = tanuloJegyzekAdatok.IsSzakkepesitesModificationEnabled;
|
|
model.AlapadatModel.IsReszSzakkepesitesModificationEnabled = tanuloJegyzekAdatok.IsReszSzakkepesitesModificationEnabled;
|
|
model.AlapadatModel.IsTanulmanyiTeruletNktTipusModificationEnabled = tanuloJegyzekAdatok.IsTanulmanyiTeruletNktTipusModificationEnabled;
|
|
model.AlapadatModel.IsSzakkepesitesNktTipusModificationEnabled = tanuloJegyzekAdatok.IsSzakkepesitesNktTipusModificationEnabled;
|
|
model.AlapadatModel.IsSzakiranyNktTipusModificationEnabled = tanuloJegyzekAdatok.IsSzakiranyNktTipusModificationEnabled;
|
|
model.AlapadatModel.IsAgazatReszSzakmaTipusModificationEnabled = tanuloJegyzekAdatok.IsAgazatReszSzakmaTipusModificationEnabled;
|
|
model.AlapadatModel.IsSzakmaReszSzakmaTipusModificationEnabled = tanuloJegyzekAdatok.IsSzakmaReszSzakmaTipusModificationEnabled;
|
|
model.AlapadatModel.IsReszSzakmaTipusModificationEnabled = tanuloJegyzekAdatok.IsReszSzakmaTipusModificationEnabled;
|
|
|
|
if ((model.AlapadatModel.IsSzakkepzeses || model.AlapadatModel.IsNKTSzakkepzeses) && ClaimData.IsSelectedTanev21_22OrLater)
|
|
{
|
|
if (!model.AlapadatModel.ReszSzakmaTipusId.HasValue)
|
|
{
|
|
model.AlapadatModel.ReszSzakmaTipusId = (int)ReszSzakmaTipusEnum.na;
|
|
}
|
|
if (!model.AlapadatModel.AgazatReszSzakmaTipusId.HasValue)
|
|
{
|
|
model.AlapadatModel.AgazatReszSzakmaTipusId = (int)AgazatReszSzakmaTipusEnum.na;
|
|
}
|
|
if (!model.AlapadatModel.SzakmaReszSzakmaTipusId.HasValue)
|
|
{
|
|
model.AlapadatModel.SzakmaReszSzakmaTipusId = (int)SzakmaReszSzakmaTipusEnum.na;
|
|
}
|
|
}
|
|
|
|
return model;
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveData(BesorolasModOsztalybolKiirtTanulokModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var ms = TanuloBesorolasLogic.CustomValidation(ModelState, model.AlapadatModel, isOsztaly: true);
|
|
TanuloBesorolasLogic.ValidateJegyzekAdatok(model.AlapadatModel, ms);
|
|
|
|
if (ms.IsValid)
|
|
{
|
|
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var tanuloCsoportCo = model.ConvertModelToTanuloCsoportCo();
|
|
helper.UpdateTanuloBesorolas(tanuloCsoportCo);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ms);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveDataTobbes(BesorolasTobbesModOsztalybolKiirtTanulokModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
int x = 0;
|
|
List<int> tanuloCsoportIdList = model.TanuloCsoportIdArray.Split(',').Where(str => int.TryParse(str, out x)).Select(str => x).ToList();
|
|
|
|
if (tanuloCsoportIdList.Count > 1)
|
|
{
|
|
var tHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
string errorMessage = tHelper.ValidateTanuloBesorolasTobbesModositas(model.ConvertTobbesModelToTanuloCsoportCo(), tanuloCsoportIdList, ClaimData.IsSzakkepzoIntezmeny, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.AktivTanevID, ClaimData.KovTanevID, false);
|
|
|
|
if (errorMessage.Length > 0)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage UpdateDatum(List<string> updatedIds)
|
|
{
|
|
TanevCO tanecCO;
|
|
var helper = new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
tanecCO = helper.GetTanevInfo();
|
|
|
|
var tHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
tHelper.UpdateTanuloCsoportBesorolasDatum(updatedIds /*, new DateTime(tanecCO.KezdoNap.Year, 10, 1)*/, new DateTime(tanecCO.KezdoNap.Year, 9, 1));
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteBesorolas(int tanuloCsoportId, int osztalyId, int tanuloId)
|
|
{
|
|
var helper = new OsztalyCsoportbaSorolasHelper(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsSzakkepzoIntezmeny, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.AktivTanevID, ClaimData.KovTanevID);
|
|
|
|
if (!helper.CheckOsztalyBesorolasDelete(tanuloCsoportId, out var errorMessages))
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, string.Empty)
|
|
{
|
|
Json = new
|
|
{
|
|
message = string.Join("<br/><br/>", errorMessages)
|
|
}
|
|
};
|
|
}
|
|
|
|
try
|
|
{
|
|
helper.DeleteOsztalyBesorolas(tanuloCsoportId, osztalyId, tanuloId);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var uzenet = $"{ErrorResource.NemTorolhetoAzAlabbiKapcsolodasokMiatt}{Environment.NewLine}{ex.ConnectionErrorMessage}";
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
}
|
|
}
|