kreta/KretaWeb/Areas/OsztalyCsoport/ApiControllers/BesorolasModFelNemVettTanuloTorleseApiController.cs
2024-03-13 00:33:46 +01:00

72 lines
2.9 KiB
C#

using System;
using System.Net;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Framework.Entities;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.OsztalyCsoport.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class BesorolasModFelNemVettTanuloTorleseApiController : ApiController
{
public DataSourceResult GetBesorolasModFelNemVettTanuloTorleseGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
return helper.GetNemBesoroltTanulok().ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult DeleteData(string[] torlesreJeloltTanulok)
{
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var errorMsg = string.Empty;
var counter = 0;
foreach (var item in torlesreJeloltTanulok)
{
try
{
helper.TanuloTorlese(int.Parse(item), ClaimData.KovTanevID, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
counter++;
}
catch (CannotBeDeletedException ex)
{
errorMsg += $"{ex.Message}{Environment.NewLine}";
continue;
}
catch (EntityDeleteFailedException ex)
{
var tanuloAdatCO = helper.GetTanuloiAdatok(int.Parse(item), ClaimData.KovTanevID, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater);
var entityName = BusinessLogic.Extensions.NameExtensions.GetNevSorrendben("F", tanuloAdatCO.Elotag, tanuloAdatCO.CsaladiNev, tanuloAdatCO.UtoNev);
errorMsg += string.Format(ErrorResource.TanuloNemTorolhetoKapcsolatMiatt, entityName, ex.ConnectionErrorMessage) + Environment.NewLine + Environment.NewLine;
continue;
}
}
if (string.IsNullOrWhiteSpace(errorMsg))
{
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
}
if (counter > 0)
{
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
}
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
}
}
}