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

162 lines
6.6 KiB
C#

using System.Collections.Generic;
using System.Net;
using System.Net.Http;
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.Web.Areas.Feljegyzes.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.Feljegyzes.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
KretaClaimPackages.Osztalyfonok.ClaimValue,
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
KretaClaimPackages.Adminisztrator.ClaimValue
)]
public class KozossegiSzolgalatokApiController : ApiController
{
public DataSourceResult GetKozossegiSzolgalatokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<KozossegiSzolgalatokSearchModel>(data);
if (model?.CsoportIdSearch == null)
{
return new DataSourceResult();
}
var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetKozossegiSzolgalatokGrid(model.ConvertModelToCo());
DataSourceResult result = ds.ToDataSourceResult();
return result;
}
[ApiRolePackageAuthorize(
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
KretaClaimPackages.Osztalyfonok.ClaimValue,
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
KretaClaimPackages.Adminisztrator.ClaimValue,
KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue,
KretaClaimPackages.IsSzirIntezmeny.ClaimValue
)]
public DataSourceResult GetKozossegiSzolgalatokReszletekGrid(int tanuloId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
bool toroltElemek = !ClaimManager.HasPackage(KretaClaimPackages.Ellenorzo.ClaimValue);
bool hasTeljesTorlesJog = toroltElemek && ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue);
var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetKozossegiSzolgalatokReszletekForGrid(tanuloId, toroltElemek, hasTeljesTorlesJog);
DataSourceResult result = ds.ToDataSourceResult();
return result;
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
KretaClaimPackages.Osztalyfonok.ClaimValue,
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
KretaClaimPackages.Adminisztrator.ClaimValue,
KretaClaimPackages.IsSzirIntezmeny.ClaimValue
)]
public HttpResponseMessage SaveKozossegiSzolgalat(KozossegiSzolgalatModel model)
{
ModelState.Merge(model.Validate());
if (ModelState.IsValid)
{
var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.SaveKozossegiSzolgalat(model.ToCo());
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
KretaClaimPackages.Osztalyfonok.ClaimValue,
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
KretaClaimPackages.Adminisztrator.ClaimValue
)]
public HttpResponseMessage DeleteKozossegiSzolgalat(int id)
{
try
{
var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.DeleteKozossegiSzolgalat(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
[ApiRolePackageAuthorize(
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
KretaClaimPackages.Osztalyfonok.ClaimValue,
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
KretaClaimPackages.Adminisztrator.ClaimValue,
KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue,
KretaClaimPackages.IsSzirIntezmeny.ClaimValue
)]
public double GetKozossegiSzolgalatOsszesOraszam(int tanuloId)
{
try
{
var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
double result = helper.GetKozossegiSzolgalatOsszesOraszam(tanuloId);
return result;
}
catch (CannotBeDeletedException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
public List<System.Web.Mvc.SelectListItem> GetKozossegiSzolgalatOsztalyList([DataSourceRequest] DataSourceRequest request)
{
List<System.Web.Mvc.SelectListItem> osztalyList = new List<System.Web.Mvc.SelectListItem>();
if (ClaimManager.HasPackage(
KretaClaimPackages.Adminisztrator.ClaimValue
, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue
, KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue))
{
osztalyList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokForDDL().ToSelectListItemList();
}
else
{
osztalyList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokForDDL("", ClaimData.FelhasznaloId, ClaimData.IsSzuperOsztalyfonok).ToSelectListItemList();
}
return osztalyList;
}
}
}