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); } } }