init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,342 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.Extensions;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.Client.Eugyintezes.Configuration;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Core.FileService;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Intezmeny.Logic;
|
||||
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
|
||||
{
|
||||
public class BaseTeremApiController : ApiController
|
||||
{
|
||||
protected readonly IFileService FileService;
|
||||
protected readonly IEugyintezesClientConfiguration EugyintezesClientConfiguration;
|
||||
|
||||
public BaseTeremApiController(IFileService fileService, IEugyintezesClientConfiguration eugyintezesClientConfiguration)
|
||||
{
|
||||
FileService = fileService;
|
||||
EugyintezesClientConfiguration = eugyintezesClientConfiguration;
|
||||
}
|
||||
|
||||
public DataSourceResult GetTeremGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList, _) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList, exportAttributeName) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TeremGridModel>(exportAttributeName);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(IntezmenyResource.ExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{IntezmenyResource.Termek_Export}_{DateTime.Now:yyyy_MM_dd}.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<TeremGridModel> modelList, string exportAttributeName) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var connection = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var model = JsonConvert.DeserializeObject<TeremSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
int? felhasznaloSzervezetId = null;
|
||||
if (ClaimData.FelhasznaloSzerepkor != SzerepkorTipusEnum.Adminisztrator)
|
||||
{
|
||||
felhasznaloSzervezetId = new SzervezetHelper(connection).GetAlkalmazottSzervezetId(ClaimData.FelhasznaloId);
|
||||
model.SzervezetId = felhasznaloSzervezetId;
|
||||
}
|
||||
var coList = new TeremHelper(connection).GetTeremCoList(model.ConvertToCo(), ClaimData.IsAdministrator, felhasznaloSzervezetId);
|
||||
var modelList = coList.Select(x => new TeremGridModel(x)).ToList();
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var exportAttributeName = model.IsFromSzervezet ? TeremGridModel.HelyszinExportAttributeId : TeremGridModel.TeremExportAttributeId;
|
||||
|
||||
return (gridParameter, modelList, exportAttributeName);
|
||||
}
|
||||
|
||||
public TeremModel GetTeremBaseProperties(int teremID)
|
||||
{
|
||||
return TeremLogic.GetTeremBaseProperties(teremID);
|
||||
}
|
||||
|
||||
public DataSourceResult GetTeremOrarendiOrai(string teremID, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = Converter.GridParameter(request)
|
||||
};
|
||||
|
||||
DataSet orak = orarendiOraHelper.GetOrarendiOrakForTerem(int.Parse(teremID));
|
||||
|
||||
return orak.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveModifiedOrNewTerem(TeremModel teremModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
var teremHelper = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var kapcsolodoOraTipusok = teremHelper.GetTeremKapcsolodoOraTipusok(teremModel.TeremId);
|
||||
TeremModel.ValidateModel(teremModel, kapcsolodoOraTipusok, ModelState);
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var terem = TeremLogic.GetTeremBaseProperties(teremModel.TeremId);
|
||||
var teremBerbeadhatoAlapertek = terem.TeremBerbeadasModel.Berbeadhato;
|
||||
|
||||
var teremCO = TeremModel.ConvertModelToCO(teremModel);
|
||||
|
||||
var teremId = 0;
|
||||
|
||||
if (teremModel.TeremBerbeadasModel.Berbeadhato)
|
||||
{
|
||||
if (teremModel.TeremBerbeadasModel.PictureList.Count > 0)
|
||||
{
|
||||
var kepInfo = new FileInfo(teremModel.TeremBerbeadasModel.PictureList.Select(x => x.Name).First());
|
||||
|
||||
teremCO.KepUtvonal = teremHelper.SaveTeremFiles(FileService, teremModel.TeremBerbeadasModel.PictureList.Select(x => x.ContentAsBase64EncodedString)).First();
|
||||
teremCO.KepNev = Path.GetFileNameWithoutExtension(kepInfo.Name);
|
||||
teremCO.KepKiterjesztes = kepInfo.Extension.Replace(".", string.Empty);
|
||||
}
|
||||
|
||||
if (teremModel.TeremBerbeadasModel.Document != null
|
||||
&& teremModel.TeremBerbeadasModel.Document.Count > 0)
|
||||
{
|
||||
var dokumentumInfo = new FileInfo(teremModel.TeremBerbeadasModel.Document.Select(x => x.Name).First());
|
||||
|
||||
teremCO.DokumentumUtvonal = teremHelper.SaveTeremFiles(FileService, teremModel.TeremBerbeadasModel.Document.Select(x => x.ContentAsBase64EncodedString)).First();
|
||||
teremCO.DokumentumNev = Path.GetFileNameWithoutExtension(dokumentumInfo.Name);
|
||||
teremCO.DokumentumKiterjesztes = dokumentumInfo.Extension.Replace(".", string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
if (teremModel.TeremId > 0)
|
||||
{
|
||||
teremHelper.UpdateTerem(teremCO);
|
||||
}
|
||||
else
|
||||
{
|
||||
teremId = teremHelper.InsertTerem(teremCO);
|
||||
}
|
||||
|
||||
if (teremModel.TeremBerbeadasModel.Berbeadhato && teremModel.TeremBerbeadasModel.TeremBerbeadasIdopontokListModel?.Count > 0)
|
||||
{
|
||||
//nyakatekert
|
||||
teremCO.TeremBerbeadasIdopontokCOList.ForEach(item =>
|
||||
{
|
||||
if (item.TeremElerhetosegId.HasValue)
|
||||
{
|
||||
teremHelper.UpdateTeremElerhetoseg(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
teremHelper.InsertTeremElerhetoseg(item, teremCO.TeremId ?? teremId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Ha bérbeadható, vagy most váltott nem bérbeadható státuszra
|
||||
if (teremModel.TeremBerbeadasModel.Berbeadhato || teremBerbeadhatoAlapertek)
|
||||
{
|
||||
TeremLogic.EugyErtesitesTeremBerbeadhatoStatuszValtozasrol(EugyintezesClientConfiguration);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (SDA.DataProvider.UniqueKeyViolationException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.MarLetezikTeremIlyenNevvel);
|
||||
}
|
||||
catch (EntityDeleteFailedException edfex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, edfex.Message.Replace("'CONNECTIONS'", edfex.ConnectionErrorMessage));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult ValidateSaveModifiedOrNewTerem(TeremModModel model)
|
||||
{
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var naplozasTeremBefogadokepessegSystemSetting = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Naplozas_terem_befogadokepesseg);
|
||||
|
||||
var kapacitastTullepettTermekFigyelmeztetoUzenet = string.Empty;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(model.TeremIDArray) && model.Kapacitas.HasValue && naplozasTeremBefogadokepessegSystemSetting)
|
||||
{
|
||||
var h = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
kapacitastTullepettTermekFigyelmeztetoUzenet = h.ValidateTeremBefogadokepesseg(tervezettKapacitas: model.Kapacitas, teremIdArrayString: model.TeremIDArray);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(kapacitastTullepettTermekFigyelmeztetoUzenet))
|
||||
{
|
||||
return Json(new { Valid = false, Text = kapacitastTullepettTermekFigyelmeztetoUzenet });
|
||||
}
|
||||
|
||||
return Json(new { Valid = true, Text = "" });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveModTerem(TeremModModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
if (model.VizsgaKapacitas > model.Kapacitas)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AVizsgaBefogadokepessegNemLehetNagyobbMintABefogadokepesseg);
|
||||
}
|
||||
|
||||
var co = TeremModModel.ConvertModelToCO(model);
|
||||
var h = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
string[] teremIDArray;
|
||||
var errorMsgs = new List<(string errorMsg, HttpStatusCode errorStatusCode)>();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.TeremIDArray))
|
||||
{
|
||||
teremIDArray = new string[] { co.ID.ToString() };
|
||||
}
|
||||
else
|
||||
{
|
||||
teremIDArray = model.TeremIDArray.Split(',');
|
||||
}
|
||||
foreach (var item in teremIDArray)
|
||||
{
|
||||
try
|
||||
{
|
||||
co.ID = int.Parse(item);
|
||||
h.TeremTobbesModify(co);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
errorMsgs.Add((e.Message, HttpStatusCode.BadRequest));
|
||||
continue;
|
||||
}
|
||||
catch (EntityDeleteFailedException edfex)
|
||||
{
|
||||
errorMsgs.Add((edfex.Message.Replace("'CONNECTIONS'", edfex.ConnectionErrorMessage), HttpStatusCode.Forbidden));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (errorMsgs.Count == 0)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
var usedErrorStatusCode = errorMsgs.GroupBy(x => x.errorStatusCode).Select(group => new { Key = group.Key, Count = group.Count() }).OrderBy(x => x.Count).First().Key;
|
||||
throw new StatusError(usedErrorStatusCode, string.Join(Environment.NewLine, errorMsgs.Select(x => x.errorMsg)));
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
public TeremModModel GetTeremBasePropertiesMod(int teremID)
|
||||
=> TeremModModel.ConvertCOToModel(new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremID));
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTerem([FromBody] int TeremId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var h = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
h.DeleteTerem(TeremId);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.Az0NemTorolhetoMertEgyVagyTobbKapcsolodasaVanKapcsolatok1, IntezmenyResource.Terem, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteSelectedTerem(List<int> idList)
|
||||
{
|
||||
var h = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
string errorMsg = string.Empty, entityName = string.Empty;
|
||||
var counter = 0;
|
||||
|
||||
foreach (var id in idList)
|
||||
{
|
||||
try
|
||||
{
|
||||
h.DeleteTerem(id);
|
||||
counter++;
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
||||
continue;
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var teremNev = h.GetTeremNev(id);
|
||||
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, teremNev, ex.ConnectionErrorMessage);
|
||||
|
||||
errorMsg += $"{errorMessage}{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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,351 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
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;
|
||||
|
||||
namespace Kreta.Web.Areas.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class CsengetesiRendApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetCsengetesiRendGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<CsengetesiRendGridModel>(CsengetesiRendGridModel.CsengetesiRendExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(CsengetesiRendResource.CsengetesiRendExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), CsengetesiRendResource.CsengetesiRendExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<CsengetesiRendGridModel> modelList) GetGridData(DataSourceRequest request)
|
||||
{
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsengetesiRendCoList();
|
||||
var modelList = new List<CsengetesiRendGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new CsengetesiRendGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
public DataSourceResult GetCsengetesiRendOrai(int csrendID, bool onlyReal, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var ds = helper.GetCsengetesiRendOraiForGrid(csrendID, onlyReal);
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetCsengetesiRendTanevrendAdatai(string csrendID, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var ds = helper.GetTanevrendByCsengRend(SDAConvert.ToInt32(csrendID));
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public CsengetesiRendModel GetCsengetesiRendProperties(int csengRendID)
|
||||
{
|
||||
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var co = helper.GetCsengetesiRendById(csengRendID);
|
||||
var model = new CsengetesiRendModel();
|
||||
|
||||
model.ID = co.ID;
|
||||
model.Nev = co.Nev;
|
||||
model.Aktiv = co.Aktiv;
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage MentesUjModositottCsengRend(SaveCsengetesiRendModel csrendOrak) //CsengetesiRendModel model,
|
||||
{
|
||||
try
|
||||
{
|
||||
CsengetesiRendModel model = new CsengetesiRendModel();
|
||||
model.ID = csrendOrak.CsengRendID;
|
||||
model.Nev = csrendOrak.CsengRendNev;
|
||||
model.Aktiv = csrendOrak.CsengRendAktiv;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.Nev.Trim()))
|
||||
{
|
||||
ModelState.AddModelError("NevHiba", StringResourcesUtil.GetString(4038)); //A csengetésirend név megadása kötelező.
|
||||
}
|
||||
|
||||
var cshelper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var helper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
if (!ClaimData.IsActivTanev && new CsengetesiRendHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).CheckCsengRendNevEgyezes(csrendOrak.CsengRendID, csrendOrak.CsengRendNev))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(3796)); //A megadott név már létezik!
|
||||
}
|
||||
|
||||
if (model.ID.Value <= 0)
|
||||
{
|
||||
var insertOralista = ConvertModelListToCoList(-1, csrendOrak.Orak, ModelState);
|
||||
var insertHibaLista = helper.ValidateCsengetesiRendOrak(insertOralista.Where(a => a.Aktiv).ToList());
|
||||
|
||||
foreach (var item in insertHibaLista)
|
||||
{
|
||||
ModelState.AddModelError("OraHiba", item.Value);
|
||||
}
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var csengetesiRendID = cshelper.SaveOrUpdateCsengetesiRend(ConvertModelToCo(model));
|
||||
|
||||
var oralista = ConvertModelListToCoList(csengetesiRendID, csrendOrak.Orak, ModelState);
|
||||
var hibaLista = helper.ValidateCsengetesiRendOrak(oralista.Where(a => a.Aktiv).ToList());
|
||||
|
||||
foreach (var item in hibaLista)
|
||||
{
|
||||
ModelState.AddModelError("OraHiba", item.Value);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
helper.SaveCsengetesiRendOraLista(oralista, csrendOrak.IsVisszamenoleges, ClaimData.KovTanevID);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(2484));
|
||||
}
|
||||
catch (SDA.DataProvider.UniqueKeyViolationException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(3796)); //A megadott név már létezik!
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SetCsengetesiRendAktiv(CsengetesiRendTorlesModel model)
|
||||
{
|
||||
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.SetCsengetesirend((int)model.ID, true);
|
||||
|
||||
int kovTanevId = ClaimData.KovTanevID ?? new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetKovetkezoTanev().Key;
|
||||
if (kovTanevId != default(int) && kovTanevId != ClaimData.SelectedTanevID)
|
||||
{
|
||||
helper.FollowUpCsengetesiRend(kovTanevId, (int)model.ID);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage CsengRendTorles(CsengetesiRendTorlesModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (model.ID.IsEntityId())
|
||||
{
|
||||
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var csengetesiRend = helper.GetCsengetesiRendById(model.ID.Value);
|
||||
|
||||
if (csengetesiRend.Aktiv)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, Framework.StringResourcesUtil.GetString(3809)); //Aktív csengetési rend nem törölhető!
|
||||
}
|
||||
|
||||
helper.DeleteCsengetesiRend(model.ID.Value);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, OrarendResource.CsengetesiRend, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool CsengetesiRendValidacio(int valasztottCsengRendId, int torlendoCsengRendId)
|
||||
{
|
||||
var helper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
CsengetesiRendOraCO valasztottCsengRendResult = helper.GetCsengetesiRendKapcsolodoOra(valasztottCsengRendId);
|
||||
CsengetesiRendOraCO torlendoCsengRendResult = helper.GetCsengetesiRendKapcsolodoOra(torlendoCsengRendId);
|
||||
|
||||
bool isFullValid = false;
|
||||
|
||||
if (valasztottCsengRendResult.MinOraszam == torlendoCsengRendResult.MinOraszam && valasztottCsengRendResult.MaxOraszam == torlendoCsengRendResult.MaxOraszam)
|
||||
{
|
||||
var valasztottCsengRendOraKezdet = helper.GetCsengetesiRendKapcsolodoOraKezdeteVege(valasztottCsengRendId);
|
||||
var torlendoCsengRendOraVeg = helper.GetCsengetesiRendKapcsolodoOraKezdeteVege(torlendoCsengRendId);
|
||||
|
||||
if (valasztottCsengRendOraKezdet.Count == torlendoCsengRendOraVeg.Count && !valasztottCsengRendOraKezdet.Except(torlendoCsengRendOraVeg).Any())
|
||||
{
|
||||
isFullValid = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, CsengetesiRendResource.OraszamNemEgyezik);
|
||||
}
|
||||
return isFullValid;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public void CsengetesiRendUpdateAndDel(int valasztottCsengRendId, int torlendoCsengRendId)
|
||||
{
|
||||
var helper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
CsengetesiRendOraCO torlendoCsengRendResult = helper.GetCsengetesiRendKapcsolodoOra(torlendoCsengRendId);
|
||||
|
||||
if (torlendoCsengRendResult.Aktiv == false)
|
||||
{
|
||||
var csRendHelper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
if (torlendoCsengRendResult.ID.HasValue)
|
||||
{
|
||||
helper.UpdateCsengetesiRend(valasztottCsengRendId, torlendoCsengRendId);
|
||||
|
||||
csRendHelper.DeleteCsengetesiRend(torlendoCsengRendId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, CsengetesiRendResource.AktivCsengRendNemTorolheto);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public CsengetesiRendOraCO CsengetesiRendDetails(int csengRendID)
|
||||
{
|
||||
return new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsengetesiRendKapcsolodoOra(csengRendID);
|
||||
}
|
||||
|
||||
#region Converters
|
||||
|
||||
private CsengetesiRendCO ConvertModelToCo(CsengetesiRendModel model)
|
||||
{
|
||||
var co = new CsengetesiRendCO();
|
||||
co.ID = model.ID;
|
||||
co.Nev = model.Nev.Trim();
|
||||
co.Aktiv = model.Aktiv;
|
||||
|
||||
return co;
|
||||
}
|
||||
|
||||
private List<CsengetesiRendOraCO> ConvertModelListToCoList(int csengetesiRendId, List<CsengetesiRendOraModel> modelList, ModelStateDictionary modelState)
|
||||
{
|
||||
var colist = new List<CsengetesiRendOraCO>();
|
||||
Regex regex = new Regex(Core.Constants.RegularExpressions.TimePicker);
|
||||
|
||||
foreach (CsengetesiRendOraModel item in modelList)
|
||||
{
|
||||
var co = new CsengetesiRendOraCO();
|
||||
co.ID = item.ID;
|
||||
co.CsengetesiRendID = csengetesiRendId;
|
||||
co.Oraszam = item.Oraszam;
|
||||
co.Aktiv = item.Aktiv;
|
||||
|
||||
if (item.Aktiv)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(item.Kezd))
|
||||
{
|
||||
modelState.AddModelError(nameof(item.Kezd), string.Format(CsengetesiRendResource.KezdeteKotelezo, item.Oraszam));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!regex.IsMatch(item.Kezd))
|
||||
{
|
||||
modelState.AddModelError(nameof(item.Kezd), string.Format(CsengetesiRendResource.KezdeteRosszFormatum, item.Oraszam));
|
||||
}
|
||||
else
|
||||
{
|
||||
var split = item.Kezd.Split(':');
|
||||
co.Kezd = new DateTime(1900, 01, 01);
|
||||
co.Kezd = co.Kezd.AddHours(SDAConvert.ToInt32(split[0])).AddMinutes(SDAConvert.ToInt32(split[1]));
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(item.Veg))
|
||||
{
|
||||
modelState.AddModelError(nameof(item.Veg), string.Format(CsengetesiRendResource.VegeKotelezo, item.Oraszam));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!regex.IsMatch(item.Veg))
|
||||
{
|
||||
modelState.AddModelError(nameof(item.Veg), string.Format(CsengetesiRendResource.VegeRosszFormatum, item.Oraszam));
|
||||
}
|
||||
else
|
||||
{
|
||||
var split = item.Veg.Split(':');
|
||||
co.Veg = new DateTime(1900, 01, 01);
|
||||
co.Veg = co.Veg.AddHours(SDAConvert.ToInt32(split[0])).AddMinutes(SDAConvert.ToInt32(split[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
colist.Add(co);
|
||||
}
|
||||
|
||||
return colist;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Client.Eugyintezes.Configuration;
|
||||
using Kreta.Core.FileService;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
||||
[Attributes.KretaGlobalLanguageChangeApiActionFilter(LanguageCode = "hu-Dualis")]
|
||||
public class DualisAdminTeremApiController : BaseTeremApiController
|
||||
{
|
||||
public DualisAdminTeremApiController(IFileService fileService, IEugyintezesClientConfiguration eugyintezesClientConfiguration)
|
||||
: base(fileService, eugyintezesClientConfiguration)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
442
KretaWeb/Areas/Intezmeny/ApiControllers/EszkozokApiController.cs
Normal file
442
KretaWeb/Areas/Intezmeny/ApiControllers/EszkozokApiController.cs
Normal file
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Areas.Intezmeny.Logic;
|
||||
using Kreta.Web.Areas.Intezmeny.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class FaliujsagApiController : ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// Visszaadja a tanuló/szülő faliújság-bejegyéseit tartalmazó listát
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public FaliujsagModel GetFaliujsagBejegyzesek(DateTime? date = null, int? startindex = null, int? range = null)
|
||||
{
|
||||
var helper = new FeljegyzesekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var dataTable = helper.GetFaliujsagonMegjelenoBejegyzesek(date, null, startindex, range);
|
||||
|
||||
var converter = new FaliujsagLogic();
|
||||
|
||||
return converter.ConvertFaliujsagDataTableToList(dataTable);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,589 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
|
||||
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;
|
||||
|
||||
namespace Kreta.Web.Areas.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class IntezmenyApiController : ApiController
|
||||
{
|
||||
private readonly IJiraHelper JiraHelper;
|
||||
|
||||
public IntezmenyApiController(IJiraHelper jiraHelper)
|
||||
{
|
||||
JiraHelper = jiraHelper ?? throw new ArgumentNullException(nameof(jiraHelper));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public IntezmenyModel GetIntezmeny(IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration)
|
||||
{
|
||||
IntezmenyModel model = new IntezmenyModel();
|
||||
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
IntezmenyCO co = helper.GetIntezmenyiAdatok();
|
||||
|
||||
if (co != null)
|
||||
{
|
||||
var posziHelper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), iktatoRepositoryFactory, iktatoServiceConfiguration);
|
||||
|
||||
var dokumentumCO = posziHelper.IntezmenyiKotelezoDokumentum(null, DokumentumTipusEnum.AlapitoOkirat);
|
||||
co.AlapitoOkirat = dokumentumCO;
|
||||
dokumentumCO = posziHelper.IntezmenyiKotelezoDokumentum(null, DokumentumTipusEnum.SzervezetiEsMukodesiSzabalyzat);
|
||||
co.SzervezetiEsMukodesiSzabalyzat = dokumentumCO;
|
||||
dokumentumCO = posziHelper.IntezmenyiKotelezoDokumentum(null, DokumentumTipusEnum.PedagogiaiProgram);
|
||||
co.PedagogiaiProgram = dokumentumCO;
|
||||
dokumentumCO = posziHelper.IntezmenyiKotelezoDokumentum(null, DokumentumTipusEnum.Hazirend);
|
||||
co.Hazirend = dokumentumCO;
|
||||
dokumentumCO = posziHelper.IntezmenyiKotelezoDokumentum(ClaimData.SelectedTanevID, DokumentumTipusEnum.Munkaterv);
|
||||
co.Munkaterv = dokumentumCO;
|
||||
dokumentumCO = posziHelper.IntezmenyiKotelezoDokumentum(null, DokumentumTipusEnum.mukodesi_engedely);
|
||||
co.MukodesiEngedely = dokumentumCO;
|
||||
|
||||
model = ConvertIntezmenyCoToModel(co);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public DataSourceResult GetIntezmenyMukodesiHelyGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
MukodesiHelyHelper helper = new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var helyek = helper.GetMukodesiHelyek();
|
||||
|
||||
return helyek.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public DataSourceResult GetIntezmenyFeladatEllatasiHelyGrid(string id, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
FeladatEllatasiHelyHelper helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var ds = helper.GetFeladatEllatasiHelyByMukodesiHelyID(int.Parse(id));
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveIntezmeny(IntezmenyModel pmodel)
|
||||
{
|
||||
bool isNevOmKodModosithato = ApplicationData.SystemType == SystemType.AZURE || ApplicationData.SystemType == SystemType.NSZFH_EMA;
|
||||
|
||||
if (IsOMKodValid(pmodel.OMKod) == false && isNevOmKodModosithato)
|
||||
{
|
||||
ModelState.AddModelError("OMKod", StringResourcesUtil.GetString(4483) /*Az OM kódnak 6 számjegyűnek kell lennie!*/);
|
||||
}
|
||||
|
||||
if (!pmodel.Telefon.IsValidPhone())
|
||||
{
|
||||
ModelState.AddModelError("Telefon", ErrorResource.ATelefonszamFormatumaNemMegfelelo);
|
||||
}
|
||||
|
||||
if (ClaimData.IsKretaAdministrator)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(pmodel.AdminEmail))
|
||||
{
|
||||
ModelState.AddModelError("AdminEmail", string.Format(ErrorResource.Required, CommonResource.AdminEmail));
|
||||
}
|
||||
else if (!pmodel.AdminEmail.IsValidEmail())
|
||||
{
|
||||
ModelState.AddModelError("AdminEmail", ErrorResource.EMailCimFormatumaNemMegfelelo);
|
||||
}
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
if (ClaimData.IsKretaAdministrator)
|
||||
{
|
||||
JiraHelper.ChangeAdminEmail(ClaimData.IntezmenyAzonosito, pmodel.AdminEmail);
|
||||
}
|
||||
|
||||
IntezmenyCO co = ConvertIntezmenyModelToCo(pmodel, isNevOmKodModosithato);
|
||||
helper.SaveIntezmenyiAdatok(co, isNevOmKodModosithato, ClaimData.IsKretaAdministrator);
|
||||
|
||||
ClaimData.OrganizationShortName = co.RovidNev;
|
||||
ClaimData.OrganizationCode = co.OMKod;
|
||||
ClaimData.RefreshOrganizationFullAddress(co);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveMukodesiHely(MukodesiHelyModel pmodel)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (pmodel.MukodesiHelyTipusa.HasValue && pmodel.MukodesiHelyTipusa.Value == (int)MukodesiHelyTipusEnum.Telephely && !pmodel.TelephelyAnyaintezmeny.HasValue)
|
||||
{
|
||||
ModelState.AddModelError(nameof(pmodel.TelephelyAnyaintezmeny), IntezmenyResource.TelephelyAnyaIntezmenyKotelezo);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
MukodesiHelyHelper helper = new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
if (pmodel.MukodesiHelyTipusa != null && (MukodesiHelyTipusEnum)pmodel.MukodesiHelyTipusa == MukodesiHelyTipusEnum.Szekhely)
|
||||
{
|
||||
bool vanMasikSzekhely;
|
||||
if (!pmodel.Id.HasValue)
|
||||
{
|
||||
var mukodesiHelyek = helper.GetMukodesiHelyek()
|
||||
.Tables[0]
|
||||
.Rows.Cast<DataRow>().ToList();
|
||||
|
||||
vanMasikSzekhely = mukodesiHelyek
|
||||
.Any(CheckSzekhely(pmodel));
|
||||
}
|
||||
else
|
||||
{
|
||||
var mukodesiHelyek = helper.GetMukodesiHelyek()
|
||||
.Tables[0]
|
||||
.Rows.Cast<DataRow>();
|
||||
|
||||
vanMasikSzekhely = mukodesiHelyek
|
||||
.Any(CheckSzekhely(pmodel));
|
||||
}
|
||||
|
||||
if (vanMasikSzekhely)
|
||||
{
|
||||
ModelState.AddModelError(nameof(pmodel.MukodesiHelyTipusa), IntezmenyResource.CsakEgySzekhelyLehet);
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
}
|
||||
|
||||
if (pmodel.MukodesiHelyTipusa.HasValue && pmodel.MukodesiHelyTipusa.Value != (int)MukodesiHelyTipusEnum.Tagintezmeny)
|
||||
{
|
||||
pmodel.VezetoNeve = string.Empty;
|
||||
}
|
||||
|
||||
var co = pmodel.ToCo();
|
||||
if (helper.MukodesiHelyAzonositoExists(co))
|
||||
{
|
||||
ModelState.AddModelError(nameof(pmodel.MukodesiHelyAzonosito), ErrorResource.AMegadottMukodesiHelyAzonositoMarLetezik);
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
helper.SaveMukodesiHely(co);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (SDA.DataProvider.SDADataProviderException ex)
|
||||
{
|
||||
if (ex.Error == SDA.DataProvider.SDADataProviderError.UniqueKeyViolation)
|
||||
{
|
||||
ModelState.AddModelError(nameof(pmodel.Nev), ErrorResource.IlyenNevuMukodesiHelyMarLetezik);
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
throw;
|
||||
}
|
||||
catch (CannotBeInsertedException ex)
|
||||
{
|
||||
ModelState.AddModelError(nameof(pmodel.MukodesiHelyAzonosito), ex.Message);
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public MukodesiHelyModel GetMukodesiHely([FromBody] int pId)
|
||||
{
|
||||
var helper = new MukodesiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
MukodesiHelyCO co = helper.GetMukodesiHelyAdatok(pId);
|
||||
return new MukodesiHelyModel(co);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveFeladat(FeladatellatasiHelyModel pmodel)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (!string.IsNullOrWhiteSpace(pmodel.KIRFeladatellatasiHelySorszama))
|
||||
{
|
||||
pmodel.KIRFeladatellatasiHelySorszama = pmodel.KIRFeladatellatasiHelySorszama.Replace("_", string.Empty);
|
||||
|
||||
if (!Regex.IsMatch(pmodel.KIRFeladatellatasiHelySorszama, Core.Constants.RegularExpressions.KIRFeladatellatasiHelySorszama))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.KIRFeladatellatasiHelySorszamCsak3JegyuSzamLehet);
|
||||
}
|
||||
}
|
||||
|
||||
var co = ConvertFeladatellatasiHelyModelToCo(pmodel);
|
||||
try
|
||||
{
|
||||
helper.SaveFeladatEllatasiHelyAdatok(co);
|
||||
}
|
||||
catch (BlException blex)
|
||||
{
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, blex.Message);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteMukodesiHely([FromBody] int pID)
|
||||
{
|
||||
try
|
||||
{
|
||||
MukodesiHelyHelper helper = new MukodesiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.DeleteMukodesiHely(pID);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, IntezmenyResource.MukodesiHely, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteFeladat([FromBody] int pID)
|
||||
{
|
||||
try
|
||||
{
|
||||
FeladatEllatasiHelyHelper helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.FeladatEllatasiHelyTorles(pID);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, CommonResource.Feladatellatasihely, ex.ConnectionErrorMessage);
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public FeladatellatasiHelyModel GetFeladatellatasiHely([FromBody] int pfeladatellatasiHelyId)
|
||||
{
|
||||
FeladatellatasiHelyModel model = new FeladatellatasiHelyModel();
|
||||
|
||||
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
FeladatEllatasiHelyCO co = helper.GetFeladatEllatasiHelyAdatok(pfeladatellatasiHelyId);
|
||||
if (co != null)
|
||||
{
|
||||
model = ConvertFeladatellatasiHelyCoToModel(co);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public List<System.Web.Mvc.SelectListItem> GetFeladatListByMukodesiHelyId([FromBody] int pmukodesiHelyId)
|
||||
{
|
||||
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var feladatIdList = helper.GetGetFeladatEllatasiHelyIdListByMukodesiHelyID(pmukodesiHelyId);
|
||||
|
||||
var feladatDDLDataSource = ((int)GeneratedAdatszotarTipusEnum.OktatasiNevelesiFeladat).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToSelectItemList();
|
||||
|
||||
foreach (var id in feladatIdList)
|
||||
{
|
||||
feladatDDLDataSource.RemoveAll(i => i.Value == id.ToString());
|
||||
}
|
||||
|
||||
return feladatDDLDataSource;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SetSzekhely([FromBody] int pmukodesiHelyId)
|
||||
{
|
||||
var helper = new MukodesiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.SetSzekhely(pmukodesiHelyId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public FeladatellatasiHelyModel GetFeladatellatasiHelyAlapadatok(int feladellHelyID)
|
||||
{
|
||||
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var co = helper.GetFeladatEllatasiHelyAdatok(feladellHelyID);
|
||||
var model = new FeladatellatasiHelyModel();
|
||||
|
||||
model.ID = co.ID;
|
||||
model.MukodesiHelyNev = co.MukodesiHelyNev;
|
||||
model.FeladatTipusNev = co.OktatasiNevelesiFeladatNev;
|
||||
|
||||
return model;
|
||||
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public DataSourceResult GetFeladatellatasiHelyOsztalycsoportjai(string id, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var ds = helper.GetFeladatellatasiHelyOsztalycsoportjai(SDAConvert.ToInt32(id));
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public DataSourceResult GetFeladatellatasiHelyAlkalmazottjai(string id, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
var ds = helper.GetFeladatellatasiHelyAlkalmazottjai(SDAConvert.ToInt32(id));
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public IntezmenyiDokumentumModel GetIntezmenyiDokumentumModel(Enums.DokumentumTipusEnum dokumentumTipus, IIktatoRepositoryFactory
|
||||
iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration)
|
||||
{
|
||||
var helper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), iktatoRepositoryFactory, iktatoServiceConfiguration);
|
||||
|
||||
var co = helper.IntezmenyiKotelezoDokumentum((dokumentumTipus != Enums.DokumentumTipusEnum.Munkaterv) ? null : ClaimData.SelectedTanevID, dokumentumTipus);
|
||||
return ConvertIntezmenyiDokumentumCoToModel(co);
|
||||
}
|
||||
|
||||
#region Others
|
||||
private IntezmenyModel ConvertIntezmenyCoToModel(IntezmenyCO co)
|
||||
{
|
||||
IntezmenyModel model = new IntezmenyModel()
|
||||
{
|
||||
Email = co.Email,
|
||||
AdminEmail = co.AdminEmail,
|
||||
Id = co.ID,
|
||||
IgazgatoNeve = co.Igazgato,
|
||||
IntezmenyNev = co.Nev,
|
||||
OMKod = co.OMKod,
|
||||
RovidNev = co.RovidNev,
|
||||
Telefon = co.Telefonszam,
|
||||
EngedelyezettAllashely = co.EngedelyezettAllashely ?? 0,
|
||||
Orszag = co.Orszag,
|
||||
Iranyitoszam = co.Iranyitoszam,
|
||||
Iranyitoszam_Str = co.Iranyitoszam,
|
||||
HelysegNev = co.Varos,
|
||||
HelysegNev_Str = co.Varos,
|
||||
KozteruletTipus = co.KozteruletJellegNev,
|
||||
KozteruletTipus_Str = co.KozteruletJellegNev,
|
||||
KozteruletNev = co.Kozterulet,
|
||||
Emelet = co.Emelet,
|
||||
Hazszam = co.Hazszam,
|
||||
Ajto = co.Ajto,
|
||||
IsSzakkepzo = co.IsSzakkepzo,
|
||||
JuttatasHatarnap = co.JuttatasHatarnap - 1,
|
||||
};
|
||||
|
||||
model.AlapitoOkirat = ConvertIntezmenyiDokumentumCoToModel(co.AlapitoOkirat);
|
||||
model.SZMSZ = ConvertIntezmenyiDokumentumCoToModel(co.SzervezetiEsMukodesiSzabalyzat);
|
||||
model.PedagogiaiProgram = ConvertIntezmenyiDokumentumCoToModel(co.PedagogiaiProgram);
|
||||
model.Hazirend = ConvertIntezmenyiDokumentumCoToModel(co.Hazirend);
|
||||
model.Munkaterv = ConvertIntezmenyiDokumentumCoToModel(co.Munkaterv);
|
||||
model.MukodesiEngedely = ConvertIntezmenyiDokumentumCoToModel(co.MukodesiEngedely);
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private IntezmenyCO ConvertIntezmenyModelToCo(IntezmenyModel model, bool isNevOMKodModosithato)
|
||||
{
|
||||
IntezmenyCO co = new IntezmenyCO()
|
||||
{
|
||||
Email = model.Email,
|
||||
AdminEmail = model.AdminEmail,
|
||||
ID = model.Id ?? (int)default,
|
||||
Igazgato = model.IgazgatoNeve,
|
||||
RovidNev = model.RovidNev,
|
||||
Telefonszam = model.Telefon,
|
||||
EngedelyezettAllashely = model.EngedelyezettAllashely.HasValue ? model.EngedelyezettAllashely : 0,
|
||||
Orszag = model.Orszag,
|
||||
Iranyitoszam = model.Iranyitoszam_Str,
|
||||
Varos = model.HelysegNev_Str,
|
||||
Kozterulet = model.KozteruletNev,
|
||||
KozteruletJellegNev = model.KozteruletTipus_Str,
|
||||
Emelet = model.Emelet,
|
||||
Hazszam = model.Hazszam,
|
||||
Ajto = model.Ajto,
|
||||
IsSzakkepzo = model.IsSzakkepzo,
|
||||
JuttatasHatarnap = model.JuttatasHatarnap + 1,
|
||||
};
|
||||
|
||||
if (isNevOMKodModosithato)
|
||||
{
|
||||
co.Nev = model.IntezmenyNev;
|
||||
co.OMKod = model.OMKod;
|
||||
}
|
||||
|
||||
if (model.AlapitoOkirat != null)
|
||||
{
|
||||
co.AlapitoOkirat = ConvertIntezmenyiDokumentumModelToCo(model.AlapitoOkirat);
|
||||
}
|
||||
if (model.SZMSZ != null)
|
||||
{
|
||||
co.SzervezetiEsMukodesiSzabalyzat = ConvertIntezmenyiDokumentumModelToCo(model.SZMSZ);
|
||||
}
|
||||
if (model.PedagogiaiProgram != null)
|
||||
{
|
||||
co.PedagogiaiProgram = ConvertIntezmenyiDokumentumModelToCo(model.PedagogiaiProgram);
|
||||
}
|
||||
if (model.Hazirend != null)
|
||||
{
|
||||
co.Hazirend = ConvertIntezmenyiDokumentumModelToCo(model.Hazirend);
|
||||
}
|
||||
if (model.Munkaterv != null)
|
||||
{
|
||||
co.Munkaterv = ConvertIntezmenyiDokumentumModelToCo(model.Munkaterv);
|
||||
}
|
||||
if (model.MukodesiEngedely != null)
|
||||
{
|
||||
co.MukodesiEngedely = ConvertIntezmenyiDokumentumModelToCo(model.MukodesiEngedely);
|
||||
}
|
||||
|
||||
return co;
|
||||
}
|
||||
|
||||
private FeladatellatasiHelyModel ConvertFeladatellatasiHelyCoToModel(FeladatEllatasiHelyCO co)
|
||||
{
|
||||
FeladatellatasiHelyModel model = new FeladatellatasiHelyModel()
|
||||
{
|
||||
FeladatTipus = co.OktatasiNevelesiFeladat.Value,
|
||||
ID = co.ID,
|
||||
MukodesiHelyID = co.MukodesiHelyID,
|
||||
KIRFeladatellatasiHelySorszama = co.KIRFeladatellatasiHelySorszama
|
||||
};
|
||||
|
||||
return model;
|
||||
}
|
||||
private FeladatEllatasiHelyCO ConvertFeladatellatasiHelyModelToCo(FeladatellatasiHelyModel model)
|
||||
{
|
||||
FeladatEllatasiHelyCO co = new FeladatEllatasiHelyCO()
|
||||
{
|
||||
OktatasiNevelesiFeladat = model.FeladatTipus,
|
||||
ID = model.ID,
|
||||
MukodesiHelyID = model.MukodesiHelyID,
|
||||
KIRFeladatellatasiHelySorszama = model.KIRFeladatellatasiHelySorszama,
|
||||
TanevId = ClaimData.SelectedTanevID.Value
|
||||
};
|
||||
|
||||
return co;
|
||||
}
|
||||
|
||||
private IntezmenyiDokumentumModel ConvertIntezmenyiDokumentumCoToModel(IntezmenyiDokumentumCO co)
|
||||
{
|
||||
return new IntezmenyiDokumentumModel()
|
||||
{
|
||||
Nev = co.Nev,
|
||||
Tipus = co.Tipus,
|
||||
FajlNev = co.FajlNev,
|
||||
Statusz = co.Statusz,
|
||||
IktatottDokumentumId = co.IktatottDokumentumId
|
||||
};
|
||||
}
|
||||
|
||||
private IntezmenyiDokumentumCO ConvertIntezmenyiDokumentumModelToCo(IntezmenyiDokumentumModel model)
|
||||
{
|
||||
return new IntezmenyiDokumentumCO()
|
||||
{
|
||||
Nev = model.Nev,
|
||||
Tipus = model.Tipus,
|
||||
FajlNev = model.FajlNev,
|
||||
Statusz = model.Statusz,
|
||||
IktatottDokumentumId = model.IktatottDokumentumId
|
||||
};
|
||||
}
|
||||
|
||||
private bool IsOMKodValid(string omKod)
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(omKod) && Regex.IsMatch(omKod, Core.Constants.RegularExpressions.OMAzonosito);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PrivateMethods
|
||||
|
||||
/// <summary>
|
||||
/// Can be used as the evaluator for iterating through the list of MukodesiHely-s within an Any function to check if there is already a Szekhely which is not the one currently being edited.
|
||||
/// </summary>
|
||||
/// <param name="pmodel">MukodesiHely currently being edited.</param>
|
||||
/// <returns></returns>
|
||||
private Func<DataRow, bool> CheckSzekhely(MukodesiHelyModel pmodel)
|
||||
{
|
||||
return row =>
|
||||
{
|
||||
MukodesiHelyTipusEnum castedValue;
|
||||
var successParse = Enum.TryParse(row["C_MUKODESIHELYTIPUSA"]?.ToString(), out castedValue);
|
||||
|
||||
if (successParse && castedValue == MukodesiHelyTipusEnum.Szekhely)
|
||||
{
|
||||
if (pmodel.Id.HasValue && row["ID"]?.ToString() == pmodel.Id.Value.ToString())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,172 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework;
|
||||
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)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsSzakkepzoIntezmeny.ClaimValue)]
|
||||
public class OktatottSzakmakApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper _fileServiceHelper;
|
||||
|
||||
public OktatottSzakmakApiController(IFileServiceHelper fileServiceHelper)
|
||||
{
|
||||
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
}
|
||||
|
||||
public DataSourceResult GetOktatottSzakmakGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<OktatottSzakmakGridModel>(OktatottSzakmakGridModel.OktatottSzakmakExportAttributeId);
|
||||
var memoryStream = SimpleExportLogic.GetExport(UjSzktSzakmajegyzekOsszerendelesResource.ExportDefaultSheetname, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
var today = DateTime.Today;
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), string.Format(UjSzktSzakmajegyzekOsszerendelesResource.ExportFileName, $"{today.Year}_{today.Month:00}_{today.Day:00}"));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben)
|
||||
{
|
||||
UnHandledException = ex
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage OktatottSzakmaMultipleModify(OktatottSzakmaMultipleModifyModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
new UjSzktSzakmajegyzekOsszerendelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveUjSzktSzakmajegyzekOsszerendelesCoList(model.ToCoList(), false);
|
||||
}
|
||||
catch (KretaError ke)
|
||||
{
|
||||
SDAServer.Instance.Logger.ExceptionThrown(ke);
|
||||
ModelState.AddModelError("Error", ke.Message);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage OktatottSzakmaModify(OktatottSzakmaModifyModel model)
|
||||
{
|
||||
if (model.File != null)
|
||||
{
|
||||
var maxAllowedFileSizeInBytes = model.MaxAllowedFileSizeInBytes;
|
||||
if (model.File.Size > maxAllowedFileSizeInBytes)
|
||||
{
|
||||
ModelState.AddModelError("Error", string.Format(CommonResource.TulNagyFajl, Math.Round((decimal)maxAllowedFileSizeInBytes / 1024 / 1024)));
|
||||
}
|
||||
|
||||
var allowedFileExtensions = model.AllowedFileExtensions;
|
||||
if (!allowedFileExtensions.ContainsValue(model.File.Type))
|
||||
{
|
||||
ModelState.AddModelError("Error", string.Format(CommonResource.NemMegfeleloFajlKiterjesztes, string.Join(", ", allowedFileExtensions.Select(x => x.Key))));
|
||||
}
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
new UjSzktSzakmajegyzekOsszerendelesHelper(ConnectionTypeExtensions.GetSessionConnectionType(), _fileServiceHelper).SaveUjSzktSzakmajegyzekOsszerendelesCo(model.ToCo(), isFileModify: true);
|
||||
}
|
||||
catch (KretaError ke)
|
||||
{
|
||||
SDAServer.Instance.Logger.ExceptionThrown(ke);
|
||||
ModelState.AddModelError("Error", ke.Message);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
public DataSourceResult GetOktatottSzakmaTanuloGrid(string id, DataSourceRequest request)
|
||||
{
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
var helper = new UjSzktSzakmajegyzekOsszerendelesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = gridParameter
|
||||
};
|
||||
|
||||
var searchCo = helper.GetUjSzktSzakmajegyzekOsszerendelesCo(int.Parse(id));
|
||||
var coList = helper.GetOktatottSzakmaTanuloCoList(searchCo);
|
||||
var modelList = new List<OktatottSzakmaTanulokGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new OktatottSzakmaTanulokGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<OktatottSzakmakGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var searchModel = JsonConvert.DeserializeObject<OktatottSzakmakSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
var helper = new UjSzktSzakmajegyzekOsszerendelesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = gridParameter
|
||||
};
|
||||
var coList = helper.GetUjSzktSzakmajegyzekOsszerendelesCoList(searchModel.ToCo());
|
||||
|
||||
var modelList = new List<OktatottSzakmakGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new OktatottSzakmakGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,301 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
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;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Intezmeny.Logic;
|
||||
using Kreta.Web.Areas.Intezmeny.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Models;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class TanevRendjeApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetTanevRendjeGrid(DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanevRendjeGridModel>(TanevRendjeGridModel.TanevRendjeExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(TanevResource.TanevRendjeExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), TanevResource.TanevRendjeExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<TanevRendjeGridModel> modelList) GetGridData(DataSourceRequest request)
|
||||
{
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevRendjeCoList();
|
||||
var modelList = new List<TanevRendjeGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new TanevRendjeGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage CheckTanevRendjeBeforeSave(TanevRendjeModel model)
|
||||
{
|
||||
//utólag egy tanítási nap nem tanítási nappá válik
|
||||
if (OrarendHelper.NemTanitasiNapTipusok.Contains(model.NapTipusa.Value))
|
||||
{
|
||||
var naptariNapHelper = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
Dictionary<int, string> tanarok = naptariNapHelper.GetNaplozottOrakTanarai(model.Datum);
|
||||
if (tanarok.Count > 0)
|
||||
{
|
||||
var result = new
|
||||
{
|
||||
NeedConfirm = true,
|
||||
ConfirmMessage = StringResourcesUtil.GetString(4806)
|
||||
//Az alábbi tanárok már naplóztak órát a kiválasztott napon:
|
||||
+ string.Join(", ", tanarok.Values) + ". "
|
||||
+ StringResourcesUtil.GetString(3226)
|
||||
};
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, result);
|
||||
}
|
||||
}
|
||||
|
||||
return SaveTanevRendje(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveTanevRendje(TanevRendjeModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
TanevRendjeLogic.TanevRendjeValidation(ModelState, model);
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
TanevRendjeLogic.CheckTanevRendjeUtkozes(model);
|
||||
model = TanevRendjeLogic.SetNapEsHetirend(model);
|
||||
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
if (!tanevrendHelper.IsTanoraOrNapirendRogzitheto(model.NapTipusa.Value))
|
||||
{
|
||||
model.UresOrarend = false;
|
||||
model.OrarendiNap = false;
|
||||
}
|
||||
|
||||
var co = new TanevrendCO
|
||||
{
|
||||
ID = model.TanevRendjeId,
|
||||
Tanev = ClaimData.SelectedTanevID.Value,
|
||||
IntezmenyId = ClaimData.IntezmenyId,
|
||||
Datum = model.Datum.Value,
|
||||
Nap = model.Nap,
|
||||
NapTip = model.NapTipusa,
|
||||
Hetirend = model.Hetirend,
|
||||
Megjegyzes = model.Megjegyzes?.Replace("<script>", "").Replace("</script>", ""),
|
||||
OsszesCsop = model.OsszesCsop,
|
||||
CsengetesiRend = model.CsengetesiRend,
|
||||
ElteroOrarendSzerintiTanitasNapDatum = model.ElteroOrarendSzerintiTanitasNapDatum,
|
||||
UresOrarend = model.UresOrarend,
|
||||
OrarendiNap = model.UresOrarend || model.OrarendiNap,
|
||||
IsEgyediNap = TanevRendjeLogic.IsEgyediNap(model)
|
||||
};
|
||||
//co.OrarendiNap = TanevRendjeLogic.IsOrarendiNap(model);
|
||||
|
||||
tanevrendHelper.SaveOrUpdateTanevRendje(co, model.ModifiedOsztalyCsoportList, model.SelectedOsztalyCsoportIdList);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e.InnerException };
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTanevRendje(TanevrendDeleteModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.DeleteTanevRendjeByID(model.TanevrendjeId, model.EgyediRogzitesTorles);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeDeletedException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.TanevrendjeNemTorolhetoKapcsolatMiatt, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
public DataSourceResult GetTanevRendjeOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<TanevRendjeModel>(data);
|
||||
|
||||
int tanevRendjeId = -1;
|
||||
if (int.TryParse(model.TanevRendjeId?.ToString(), out int resultId))
|
||||
{
|
||||
tanevRendjeId = resultId;
|
||||
}
|
||||
|
||||
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = Converter.GridParameter(request)
|
||||
};
|
||||
DataSet ds = helper.GetTanevredhezTartozoOsztCsopList(tanevRendjeId, model.FeladatKategoriaId, model.MukodesiHelyId, model.FeladatEllatasiHelyId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetNaptariHetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = Converter.GridParameter(request)
|
||||
};
|
||||
|
||||
helper.GridParameters.OrderBy = "HetSorszama ASC";
|
||||
|
||||
DataSet ds = helper.GetNaptariHetList();
|
||||
|
||||
var dataList = new List<NaptariHetGridModel>();
|
||||
DataTable dt = ds.Tables[0];
|
||||
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
var model = new NaptariHetGridModel()
|
||||
{
|
||||
ID = dr["ID"].ToString(),
|
||||
HetSorszama = SDAConvert.ToInt32(dr["HetSorszama"]),
|
||||
HetKezdoNapja = SDAConvert.ToDateTime(dr["HetKezdoNapja"]).Value,
|
||||
HetUtolsoNapja = SDAConvert.ToDateTime(dr["HetUtolsoNapja"]).Value,
|
||||
Hetirend = SDAConvert.ToInt32(dr["Hetirend"]),
|
||||
};
|
||||
|
||||
dataList.Add(model);
|
||||
}
|
||||
|
||||
var dataSourceResult = new DataSourceResult
|
||||
{
|
||||
Data = dataList,
|
||||
Total = Convert.ToInt32(dt.ExtendedProperties["RowCount"])
|
||||
};
|
||||
|
||||
return dataSourceResult;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage GetHetirendHelyettesitesList(SetHetirendModel model)
|
||||
{
|
||||
WarningValidationModel validationMsg = new WarningValidationModel();
|
||||
|
||||
if (model.ModifiedHetirendList.Count > 0)
|
||||
{
|
||||
var helper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var ds = helper.GetHetirendHelyettesitesList(model.ModifiedHetirendList);
|
||||
if (ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
validationMsg.Msg += "<br />";
|
||||
validationMsg.Msg += "<strong>" + HelyettesitesResource.Datum + ":</strong> " + row.Field<DateTime>("Datum").ToShortDateString();
|
||||
validationMsg.Msg += " <strong>" + HelyettesitesResource.Helyettesito + ":</strong> " + row.Field<string>("Helyettesito");
|
||||
validationMsg.Msg += " <strong>" + HelyettesitesResource.Helyettesitett + ":</strong> " + row.Field<string>("fHelyettesitett");
|
||||
validationMsg.Msg += " <strong>" + HelyettesitesResource.OsztalyCsoport + ":</strong> " + row.Field<string>("OsztalyCsoport");
|
||||
validationMsg.Msg += " <strong>" + HelyettesitesResource.Tantargy + ":</strong> " + row.Field<string>("Tantargy");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(validationMsg.Msg))
|
||||
{
|
||||
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = validationMsg };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SetHetirend(SetHetirendModel model)
|
||||
{
|
||||
if (model.ModifiedHetirendList.Count > 0)
|
||||
{
|
||||
var helper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.SetHetirend(model.ModifiedHetirendList);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetHetirendList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HetiRendTipus, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
dictionary["0"] = StringResourcesUtil.GetString(4254) /*Szünet*/;
|
||||
|
||||
return Json(dictionary.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public bool GetNaptipusIsTanoraOrTanorakivuli(string napTipusId)
|
||||
{
|
||||
var model = new TanevRendjeModel() { NapTipusa = int.Parse(napTipusId) };
|
||||
return TanevRendjeLogic.IsOrarendiNap(model);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.Extensions;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Client.Eugyintezes.Configuration;
|
||||
using Kreta.Core.FileService;
|
||||
using Kreta.Web.Areas.Intezmeny.Logic;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Intezmeny.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
||||
public class TeremApiController : BaseTeremApiController
|
||||
{
|
||||
public TeremApiController(IFileService fileService, IEugyintezesClientConfiguration eugyintezesClientConfiguration)
|
||||
: base(fileService, eugyintezesClientConfiguration)
|
||||
{
|
||||
}
|
||||
|
||||
public DataSourceResult GetTeremEszkozei(string teremID, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var eszkozHelper = new EszkozHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
eszkozHelper.GridParameters = Converter.GridParameter(request);
|
||||
var eszkozok = eszkozHelper.GetEszkozokForTerem(int.Parse(teremID));
|
||||
|
||||
return eszkozok.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetTeremBerbeadasIdopontjai(int teremId)
|
||||
{
|
||||
var berbeadasIdopontjai = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremBerbeadasIdopontjai(teremId);
|
||||
|
||||
return berbeadasIdopontjai.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IHttpActionResult GetPicture(int? teremId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return Json(TeremLogic.GetPicture(FileService, teremId).ToDataSourceResult(request));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public (string FajNev, byte[] Content) GetDocument(int? teremId)
|
||||
{
|
||||
return TeremLogic.GetDocument(FileService, teremId);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue