171 lines
7.4 KiB
C#
171 lines
7.4 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.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 BesorolasModCsoportbolbolKiirtTanulokApiController : ApiController
|
|
{
|
|
public DataSourceResult GetBesorolasModCsoportbolKiirtTanulokGrid(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.GetKiirtTanulokEsCsoportokGridItemCoList(co);
|
|
|
|
var modelList = new List<BesorolasModCsoportGridModel>();
|
|
|
|
foreach (var item in coList)
|
|
{
|
|
var gridModel = new BesorolasModCsoportGridModel(item);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public BesorolasModCsoportbolKiirtTanulokModel GetTanuloData(int tanuloCsoportId)
|
|
{
|
|
var model = new BesorolasModCsoportbolKiirtTanulokModel(tanuloCsoportId);
|
|
var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType();
|
|
var tanevHelper = new TanevHelper(connectionType);
|
|
var tanevCo = tanevHelper.GetTanevInfo();
|
|
|
|
model.AlapadatModel.ElsoTanitasiNap = tanevCo.ElsoTanitasiNap;
|
|
model.AlapadatModel.UtolsoNap = tanevCo.UtolsoNap;
|
|
model.AlapadatModel.UtolsoTanitasiNap = tanevCo.UtolsoTanitasiNap;
|
|
|
|
var tanuloHelper = new TanuloHelper(connectionType);
|
|
var tanuloCsoportCo = tanuloHelper.GetTanuloCsoportById(tanuloCsoportId);
|
|
|
|
model.AlapadatModel.TanuloCsoportId = tanuloCsoportCo.ID;
|
|
model.AlapadatModel.TanuloId = tanuloCsoportCo.TanuloId;
|
|
model.AlapadatModel.CsoportId = tanuloCsoportCo.OsztalyCsoportId;
|
|
model.AlapadatModel.CsoportNev = tanuloCsoportCo.OsztalyNev;
|
|
model.AlapadatModel.TanuloNev = tanuloHelper.GetTanuloNev(tanuloCsoportCo.TanuloId);
|
|
model.AlapadatModel.BelepesDatum = tanuloCsoportCo.BelepDatum.Value;
|
|
model.AlapadatModel.KilepesDatum = tanuloCsoportCo.KilepDatum;
|
|
model.AlapadatModel.Megjegyzes = tanuloCsoportCo.Megjegyzes;
|
|
model.AlapadatModel.BefogadoIntezmeny = tanuloCsoportCo.BefogadoIntezmeny;
|
|
|
|
return model;
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveData(BesorolasModCsoportbolKiirtTanulokModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var ms = TanuloBesorolasLogic.CustomValidation(ModelState, model.AlapadatModel, isOsztaly: false);
|
|
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(BesorolasTobbesModCsoportbolKiirtTanulokModel 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 tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
tanuloHelper.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([FromBody] int tanuloCsoportId)
|
|
{
|
|
var osztalyCsoportbaSorolasHelper = new OsztalyCsoportbaSorolasHelper(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsSzakkepzoIntezmeny, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.AktivTanevID, ClaimData.KovTanevID);
|
|
|
|
if (!osztalyCsoportbaSorolasHelper.CheckCsoportBesorolasDelete(tanuloCsoportId, out var errorMessages))
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, string.Empty)
|
|
{
|
|
Json = new
|
|
{
|
|
message = string.Join("<br/><br/>", errorMessages)
|
|
}
|
|
};
|
|
}
|
|
|
|
var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
try
|
|
{
|
|
tanuloHelper.DeleteTanuloCsoport(tanuloCsoportId);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var uzenet = $"{ErrorResource.NemTorolhetoAzAlabbiKapcsolodasokMiatt}{Environment.NewLine}{ex.ConnectionErrorMessage}";
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
}
|
|
}
|