init
This commit is contained in:
@@ -0,0 +1,442 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Intezmeny.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.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class EszkozokApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetEszkozokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
EszkozSearchModel model = JsonConvert.DeserializeObject<EszkozSearchModel>(data);
|
||||
|
||||
var ehelper = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
ehelper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var eszkozok = ehelper.EszkozKereses(model.ConvertToCo(ClaimData.SelectedTanevID.Value));
|
||||
|
||||
return eszkozok.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public EszkozModel GetEszkozProperties(int eszkozId)
|
||||
{
|
||||
EszkozCO co;
|
||||
EszkozHelper ehelper = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
co = ehelper.GetEszkozCo(eszkozId);
|
||||
|
||||
return ConvertCOtoModel(co);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveModifiedOrNewEszkoz(EszkozModel model)
|
||||
{
|
||||
if (!ClaimData.EszkozKezelesEnabled)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
int ideiEv = System.DateTime.Now.Year;
|
||||
if (model.GyartasiEv < ideiEv - 100 || model.GyartasiEv > ideiEv)
|
||||
{
|
||||
//A gyártási év nem lehet száz évnél régebbi, és újabb, mint az idei év
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(3828));
|
||||
}
|
||||
if (Convert.ToDateTime(model.BeszerzesDatum).Date > System.DateTime.Now.Date)
|
||||
{
|
||||
//A beszerzési dátum nem lehet későbbi, mint a mai nap
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(3831));
|
||||
}
|
||||
if (model.BeszerzesDatum?.Year < model.GyartasiEv)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, IntezmenyResource.BeszerzesDatumaNemLehetKorabbbanMintGyartasiEv);
|
||||
}
|
||||
|
||||
EszkozHelper h = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (h.GetEszkozByName(model.Nev, model.ID, model.TeremID.Value, model.Jelleg ?? (int)Enums.EszkozJellegEnum.na))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, EszkozResource.MegadottNevvelMarSzerepelEszkoz);
|
||||
}
|
||||
|
||||
EszkozCO co = Convert_Model_to_CO(model);
|
||||
if (model.ID.HasValue && model.ID > 0)
|
||||
{
|
||||
h.UpdateEszkozCo(co);
|
||||
}
|
||||
else
|
||||
{
|
||||
h.InsertEszkozCo(co);
|
||||
}
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
public EszkozCsopModModel GetCsopEszkozProperties(int eszkozId)
|
||||
{
|
||||
if (!ClaimData.EszkozKezelesEnabled)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
|
||||
}
|
||||
EszkozCO co;
|
||||
EszkozHelper ehelper = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
co = ehelper.GetEszkozCo(eszkozId);
|
||||
|
||||
EszkozCsopModModel model = new EszkozCsopModModel();
|
||||
model.EszkozId = eszkozId;
|
||||
model.EszkozNev = co.Nev;
|
||||
model.TeremID = co.TeremID;
|
||||
model.Tipus = co.Tipus;
|
||||
model.Kategoria = co.Kategoria;
|
||||
model.BeszerzesDatum = co.BeszerzesDatum;
|
||||
model.Darabszam = co.Darabszam;
|
||||
model.SzemelyiFelelos = co.SzemelyiFelelos;
|
||||
model.GyartasiEv = co.GyartasiEv;
|
||||
|
||||
//Statisztikai jellemzők
|
||||
model.PedagogusHozzaferhet = co.PedagogusHozzaferhet;
|
||||
model.TanuloHozzaferhet = co.TanuloHozzaferhet;
|
||||
model.Multimedias = co.Multimedias;
|
||||
model.HalozatiKapcsolat = co.HalozatiKapcsolat;
|
||||
model.Hordozhato = co.Hordozhato;
|
||||
model.InternetKapcsolat = co.InternetKapcsolat;
|
||||
model.Berelt = co.Berelt;
|
||||
model.Tartozek = co.Tartozek;
|
||||
model.TartozekHivatkozas = co.TartozekHivatkozas;
|
||||
model.Celja = co.Celja;
|
||||
model.NemMukodik = co.NemMukodik;
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage TeremValidacio(EszkozModel model)
|
||||
{
|
||||
if (!ClaimData.EszkozKezelesEnabled)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
|
||||
}
|
||||
|
||||
if (model.ID.IsEntityId() && new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEszkozByIds(model.ID.ToString(), model.TeremID.Value))
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TeremID), EszkozResource.MegadottNevvelMarSzerepelTomegesEszkoz);
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage TeremValidacioTobbes(EszkozCsopModModel model)
|
||||
{
|
||||
if (!ClaimData.EszkozKezelesEnabled)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
|
||||
}
|
||||
|
||||
if (new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEszkozByIds(model.EszkozIdArray.TrimEnd(' ').TrimEnd(','), model.TeremID.Value))
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TeremID), EszkozResource.MegadottNevvelMarSzerepelTomegesEszkoz);
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveCsopModifiedEszkozok(EszkozCsopModModel model)
|
||||
{
|
||||
if (!ClaimData.EszkozKezelesEnabled)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAMuveletVegrehajtasahoz);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
int ideiEv = System.DateTime.Now.Year;
|
||||
if (model.GyartasiEv < ideiEv - 100 || model.GyartasiEv > ideiEv)
|
||||
{
|
||||
//A gyártási év nem lehet száz évnél régebbi, és újabb, mint az idei év
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(3828));
|
||||
}
|
||||
if (Convert.ToDateTime(model.BeszerzesDatum).Date > System.DateTime.Now.Date)
|
||||
{
|
||||
//A beszerzési dátum nem lehet későbbi, mint a mai nap
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(3831));
|
||||
}
|
||||
if (model.BeszerzesDatum?.Year < model.GyartasiEv)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, IntezmenyResource.BeszerzesDatumaNemLehetKorabbbanMintGyartasiEv);
|
||||
}
|
||||
|
||||
string[] eszkozArray;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(model.EszkozIdArray))
|
||||
{
|
||||
eszkozArray = model.EszkozIdArray.Split(',');
|
||||
}
|
||||
else
|
||||
{
|
||||
eszkozArray = new string[] { model.EszkozId.ToString() };
|
||||
}
|
||||
|
||||
foreach (var item in eszkozArray)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(item))
|
||||
{
|
||||
var co = new EszkozCO();
|
||||
co.ID = int.Parse(item);
|
||||
co.TeremID = model.TeremID;
|
||||
co.Tipus = model.Tipus;
|
||||
co.Kategoria = model.Kategoria;
|
||||
co.BeszerzesDatum = model.BeszerzesDatum;
|
||||
co.Darabszam = model.Darabszam;
|
||||
co.SzemelyiFelelos = model.SzemelyiFelelos;
|
||||
co.GyartasiEv = model.GyartasiEv;
|
||||
if (model.TanuloHozzaferhet.HasValue)
|
||||
{
|
||||
co.TanuloHozzaferhet = model.TanuloHozzaferhet;
|
||||
}
|
||||
if (model.PedagogusHozzaferhet.HasValue)
|
||||
{
|
||||
co.PedagogusHozzaferhet = model.PedagogusHozzaferhet;
|
||||
}
|
||||
if (model.HalozatiKapcsolat.HasValue)
|
||||
{
|
||||
co.HalozatiKapcsolat = model.HalozatiKapcsolat;
|
||||
}
|
||||
if (model.InternetKapcsolat.HasValue)
|
||||
{
|
||||
co.InternetKapcsolat = model.InternetKapcsolat;
|
||||
}
|
||||
if (model.Multimedias.HasValue)
|
||||
{
|
||||
co.Multimedias = model.Multimedias;
|
||||
}
|
||||
if (model.Berelt.HasValue)
|
||||
{
|
||||
co.Berelt = model.Berelt;
|
||||
}
|
||||
co.Tartozek = model.Tartozek;
|
||||
if (model.Hordozhato.HasValue)
|
||||
{
|
||||
co.Hordozhato = model.Hordozhato;
|
||||
}
|
||||
co.Celja = model.Celja;
|
||||
co.TartozekHivatkozas = model.TartozekHivatkozas;
|
||||
if (model.NemMukodik.HasValue)
|
||||
{
|
||||
co.NemMukodik = model.NemMukodik;
|
||||
}
|
||||
|
||||
var helper = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.UpdateCsopEszkoz(co);
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteEszkoz([FromBody] int eszkozId)
|
||||
{
|
||||
var eszkozList = new List<int> { eszkozId };
|
||||
return DeleteSelectedEszkoz(eszkozList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteSelectedEszkoz(List<int> eszkozList)
|
||||
{
|
||||
EszkozHelper h = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
string errorMsg = string.Empty, entityName = string.Empty;
|
||||
var counter = 0;
|
||||
|
||||
foreach (var eszkozId in eszkozList)
|
||||
{
|
||||
try
|
||||
{
|
||||
h.DeleteEszkoz(eszkozId);
|
||||
counter++;
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var eszkoz = h.GetEszkozCo(eszkozId);
|
||||
entityName = eszkoz.Nev;
|
||||
|
||||
errorMsg += string.Format(ErrorResource.EszkozNemTorolhetoKapcsolatMiatt1, 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);
|
||||
}
|
||||
|
||||
private EszkozCO Convert_Model_to_CO(EszkozModel model)
|
||||
{
|
||||
EszkozCO eszkoz = new EszkozCO()
|
||||
{
|
||||
Berelt = model.Berelt.ToNullableInt(),
|
||||
BeszerzesDatum = model.BeszerzesDatum,
|
||||
BeszerzesiAr = model.BeszerzesiAr,
|
||||
Celja = model.Celja,
|
||||
Darabszam = model.Darabszam,
|
||||
FelelosNev = model.FelelosNev,
|
||||
FokonyviSzam = model.FokonyviSzam,
|
||||
GyariSzam = model.GyariSzam,
|
||||
GyartasiEv = model.GyartasiEv,
|
||||
HalozatiKapcsolat = model.HalozatiKapcsolat.ToNullableInt(),
|
||||
Hordozhato = model.Hordozhato.ToNullableInt(),
|
||||
ID = model.ID,
|
||||
InternetKapcsolat = model.InternetKapcsolat.ToNullableInt(),
|
||||
Jelleg = model.Jelleg,
|
||||
Kategoria = model.Kategoria,
|
||||
LeltariSzam = model.LeltariSzam,
|
||||
MennyisegiEgyseg = model.MennyisegiEgyseg,
|
||||
Megjegyzes = model.Megjegyzes,
|
||||
Multimedias = model.Multimedias.ToNullableInt(),
|
||||
NemMukodik = model.NemMukodik.ToNullableInt(),
|
||||
Nev = model.Nev,
|
||||
PedagogusHozzaferhet = model.PedagogusHozzaferhet.ToNullableInt(),
|
||||
Szallito = model.Szallito,
|
||||
SzemelyiFelelos = model.SzemelyiFelelos,
|
||||
TanuloHozzaferhet = model.TanuloHozzaferhet.ToNullableInt(),
|
||||
Tartozek = model.Tartozek,
|
||||
TartozekHivatkozas = model.TartozekHivatkozas,
|
||||
TeremID = model.TeremID ?? -1,
|
||||
TeremNev = model.TeremNev,
|
||||
Tipus = model.Tipus,
|
||||
Vonalkod = model.Vonalkod
|
||||
};
|
||||
return eszkoz;
|
||||
}
|
||||
|
||||
private EszkozModel ConvertCOtoModel(EszkozCO co)
|
||||
{
|
||||
EszkozModel model = new EszkozModel()
|
||||
{
|
||||
Berelt = co.Berelt.ToBool(),
|
||||
BeszerzesDatum = co.BeszerzesDatum,
|
||||
BeszerzesiAr = co.BeszerzesiAr,
|
||||
Celja = co.Celja,
|
||||
Darabszam = co.Darabszam,
|
||||
FelelosNev = co.FelelosNev,
|
||||
FokonyviSzam = co.FokonyviSzam,
|
||||
GyariSzam = co.GyariSzam,
|
||||
GyartasiEv = co.GyartasiEv,
|
||||
HalozatiKapcsolat = co.HalozatiKapcsolat.ToBool(),
|
||||
Hordozhato = co.Hordozhato.ToBool(),
|
||||
ID = co.ID,
|
||||
InternetKapcsolat = co.InternetKapcsolat.ToBool(),
|
||||
Jelleg = co.Jelleg,
|
||||
Kategoria = co.Kategoria,
|
||||
LeltariSzam = co.LeltariSzam,
|
||||
Megjegyzes = co.Megjegyzes,
|
||||
MennyisegiEgyseg = co.MennyisegiEgyseg,
|
||||
NemMukodik = co.NemMukodik.ToBool(),
|
||||
Multimedias = co.Multimedias.ToBool(),
|
||||
Nev = co.Nev,
|
||||
PedagogusHozzaferhet = co.PedagogusHozzaferhet.ToBool(),
|
||||
Szallito = co.Szallito,
|
||||
SzemelyiFelelos = co.SzemelyiFelelos,
|
||||
TanuloHozzaferhet = co.TanuloHozzaferhet.ToBool(),
|
||||
Tartozek = co.Tartozek,
|
||||
TartozekHivatkozas = co.TartozekHivatkozas,
|
||||
TeremID = co.TeremID,
|
||||
TeremNev = co.TeremNev,
|
||||
Tipus = co.Tipus,
|
||||
Vonalkod = co.Vonalkod
|
||||
};
|
||||
return model;
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetKategoriaList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.EszkozKategoria).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList();
|
||||
|
||||
return Json(items);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetFelelosList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var dictionary = helper.GetAlkalmazottak();
|
||||
var dropdownListItems = new List<ComboBoxListItem>();
|
||||
|
||||
foreach (var item in dictionary)
|
||||
{
|
||||
var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key };
|
||||
dropdownListItems.Add(sli);
|
||||
}
|
||||
|
||||
return Json(dropdownListItems);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTipusList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var tipuslist = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.EszkozTipus, ClaimData.SelectedTanevID.Value);
|
||||
var list = new List<ComboBoxListItem>();
|
||||
|
||||
foreach (var item in tipuslist)
|
||||
{
|
||||
var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key };
|
||||
list.Add(sli);
|
||||
}
|
||||
return Json(list);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetFelhasznalasList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var enumList = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.EszkozCel, ClaimData.SelectedTanevID.Value);
|
||||
var list = new List<ComboBoxListItem>();
|
||||
|
||||
foreach (var item in enumList)
|
||||
{
|
||||
var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key };
|
||||
list.Add(sli);
|
||||
}
|
||||
return Json(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user