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

199 lines
7.7 KiB
C#

using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
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.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Adatszolgaltatasok.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Adatszolgaltatasok.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class EnaploAdatszolgaltatasApiController : ApiController
{
public EnaploAdatszolgaltatasModel GetEnaploAdatszolgaltatas()
{
var helper = new AdatszolgaltatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var co = helper.GetEnaploAdatszolgaltatas();
return Convert_CO_to_Model(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveModifiedOrNewEnaploAdatszolgaltatas(EnaploAdatszolgaltatasModel model)
{
if (ModelState.IsValid)
{
AdatszolgaltatasokHelper h = new AdatszolgaltatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
EnaploAdatszolgaltatasCO co = Convert_Model_to_CO(model);
if (model.ID.HasValue && model.ID > 0)
{
h.InsertorUpdateEnaploAdatszolgaltatasCO(co, true);
}
else
{
h.InsertorUpdateEnaploAdatszolgaltatasCO(co, false);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage RemoveSzerzodes()
{
try
{
var helper = new AdatszolgaltatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.DeleteSzerzodesFile();
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AdatszolgaltatasokResource.Szerzodes, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
private EnaploAdatszolgaltatasModel Convert_CO_to_Model(EnaploAdatszolgaltatasCO co)
{
EnaploAdatszolgaltatasModel model = new EnaploAdatszolgaltatasModel()
{
ID = co.ID,
HasznalENaplot = EncodeIgenNemSelector(co.HasznalENaplot),
HasznalPapirNaplot = EncodeIgenNemSelector(co.HasznalPapirNaplot),
HasznalEEllenorzot = EncodeIgenNemSelector(co.HasznalEEllenorzot),
ENaploTipus = co.ENaploTipus,
ENaploInfra = co.ENaploInfra,
ForrasTipusa = co.ForrasTipusa,
SzerzodesOsszege = co.SzerzodesOsszege,
SzerzodoNeve = co.SzerzodoNeve,
SzerzodoPozicio = co.SzerzodoPozicio,
SzerzodesKezdete = co.SzerzodesKezdete,
SzerzodesVege = co.SzerzodesVege,
VanHonlap = EncodeIgenNemSelector(co.VanHonlap),
HonlapUrl = co.HonlapUrl
};
return model;
}
private EnaploAdatszolgaltatasCO Convert_Model_to_CO(EnaploAdatszolgaltatasModel model)
{
EnaploAdatszolgaltatasCO co = new EnaploAdatszolgaltatasCO();
co.ID = model.ID;
if (model.HasznalENaplot.HasValue && model.HasznalENaplot == (int)IgenNemEnum.Nem)
{
co.HasznalENaplot = DecodeIgenNemSelector(model.HasznalENaplot);
return co;
}
else if (model.HasznalENaplot.HasValue && model.HasznalENaplot == (int)IgenNemEnum.Igen)
{
co.HasznalENaplot = DecodeIgenNemSelector(model.HasznalENaplot);
co.HasznalPapirNaplot = DecodeIgenNemSelector(model.HasznalPapirNaplot);
co.HasznalEEllenorzot = DecodeIgenNemSelector(model.HasznalEEllenorzot);
if (model.ENaploTipus.HasValue && (model.ENaploTipus == (int)ENaploTipusEnum.KRETA || model.ENaploTipus == (int)ENaploTipusEnum.NN))
{
co.ENaploTipus = model.ENaploTipus;
return co;
}
else
{
co.ENaploTipus = model.ENaploTipus;
co.ENaploInfra = model.ENaploInfra;
co.ForrasTipusa = model.ForrasTipusa;
co.SzerzodesOsszege = model.SzerzodesOsszege;
co.SzerzodoNeve = model.SzerzodoNeve;
co.SzerzodoPozicio = model.SzerzodoPozicio;
co.SzerzodesKezdete = model.SzerzodesKezdete;
co.SzerzodesVege = model.SzerzodesVege;
co.VanHonlap = DecodeIgenNemSelector(model.VanHonlap);
if (model.VanHonlap.HasValue && model.VanHonlap == (int)IgenNemEnum.Igen)
{
co.HonlapUrl = model.HonlapUrl;
}
}
}
return co;
}
private bool? DecodeIgenNemSelector(int? ertek)
{
if (ertek == null)
{
return null;
}
else if (ertek == (int)IgenNemEnum.Igen)
{
return true;
}
else
{
return false;
}
}
private int? EncodeIgenNemSelector(bool? ertek)
{
if (ertek == null)
{
return null;
}
return ertek == true ? (int)IgenNemEnum.Igen : (int)IgenNemEnum.Nem;
}
public JsonResult<List<ComboBoxListItem>> GetEnaploTipusok([DataSourceRequest] DataSourceRequest request)
{
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ENaploTipus, ClaimData.SelectedTanevID.Value, toLower: true);
return Json(dictionary.ToComboBoxItemList());
}
public JsonResult<List<ComboBoxListItem>> GetEnaploInfra([DataSourceRequest] DataSourceRequest request)
{
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ENaploInfra, ClaimData.SelectedTanevID.Value, toLower: true);
return Json(dictionary.ToComboBoxItemList());
}
public JsonResult<List<ComboBoxListItem>> GetEnaploForras([DataSourceRequest] DataSourceRequest request)
{
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ENaploForras, ClaimData.SelectedTanevID.Value, toLower: true);
return Json(dictionary.ToComboBoxItemList());
}
public JsonResult<List<ComboBoxListItem>> GetSzerzodoPozicio([DataSourceRequest] DataSourceRequest request)
{
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzerzodoSzemelyPozicio, ClaimData.SelectedTanevID.Value, toLower: true);
return Json(dictionary.ToComboBoxItemList());
}
}
}