129 lines
4.7 KiB
C#
129 lines
4.7 KiB
C#
using System;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Resources;
|
|
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 OraSorszamozasHalmazApiController : ApiController
|
|
{
|
|
public DataSourceResult GetHalmazGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var model = JsonConvert.DeserializeObject<OraSorszamozasHalmazSearchModel>(data);
|
|
|
|
var helper = new OraSorszamozasHalmazHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
|
|
var ds = helper.GetAllPaged(model.ConvertToCO());
|
|
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetOsszerendelesGrid(int halmazId)
|
|
{
|
|
var helper = new OraSorszamozasHalmazHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var ds = helper.GetOsszerendelesek(halmazId, true);
|
|
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteHalmaz(int id)
|
|
{
|
|
new OraSorszamozasHalmazHelper(ConnectionTypeExtensions.GetSessionConnectionType()).Delete(id);
|
|
|
|
return Request.CreateResponse(HttpStatusCode.OK);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteOsszerendeles(int id)
|
|
{
|
|
new OraSorszamozasHalmazHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteOsszerendeles(id);
|
|
|
|
return Request.CreateResponse(HttpStatusCode.OK);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage Save(OraSorszamozasHalmazModel model)
|
|
{
|
|
try
|
|
{
|
|
CustomValidation(ModelState, model);
|
|
|
|
if (ModelState.IsValid)
|
|
{
|
|
new OraSorszamozasHalmazHelper(ConnectionTypeExtensions.GetSessionConnectionType()).Save(model.ConvertModelToCo());
|
|
|
|
return Request.CreateResponse(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e };
|
|
}
|
|
}
|
|
|
|
private void CustomValidation(ModelStateDictionary modelState, OraSorszamozasHalmazModel model)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(model.Nev))
|
|
{
|
|
var helper = new OraSorszamozasHalmazHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var result = helper.NevExists(model.Nev, model.ID);
|
|
|
|
if (result)
|
|
{
|
|
modelState.AddModelError(nameof(model.Nev), OraSorszamozasHalmazResource.AMegadottNevvelMarLetezikHalmaz);
|
|
}
|
|
}
|
|
|
|
if (model.Osszerendelesek == null || model.Osszerendelesek.Count < 1)
|
|
{
|
|
modelState.AddModelError(nameof(model.Osszerendelesek), OraSorszamozasHalmazResource.LegalabbEgyOsszerendelesRogziteseKotelezo);
|
|
}
|
|
|
|
if (model.Tipus == (int)SorszamozasKezdoErtekenekBeallitasa.SorszamozasKezdoErtekeKezzelMegadva)
|
|
{
|
|
if (!model.Kezdoertek.HasValue)
|
|
{
|
|
modelState.AddModelError(nameof(model.Kezdoertek), OraSorszamozasHalmazResource.AKezdoErtekMegadasaKotelezo);
|
|
}
|
|
else
|
|
{
|
|
if (model.Kezdoertek.Value < 1)
|
|
{
|
|
modelState.AddModelError(nameof(model.Kezdoertek), OraSorszamozasHalmazResource.AKezdoErtekNemLehetKisebbMintEgy);
|
|
}
|
|
else
|
|
{
|
|
if (model.Kezdoertek.Value > 1000)
|
|
{
|
|
modelState.AddModelError(nameof(model.Kezdoertek), OraSorszamozasHalmazResource.AKezdoErtekNemLehetNagyobbMintEzer);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|