162 lines
6.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|