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> GetEnaploTipusok([DataSourceRequest] DataSourceRequest request) { IDictionary dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ENaploTipus, ClaimData.SelectedTanevID.Value, toLower: true); return Json(dictionary.ToComboBoxItemList()); } public JsonResult> GetEnaploInfra([DataSourceRequest] DataSourceRequest request) { IDictionary dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ENaploInfra, ClaimData.SelectedTanevID.Value, toLower: true); return Json(dictionary.ToComboBoxItemList()); } public JsonResult> GetEnaploForras([DataSourceRequest] DataSourceRequest request) { IDictionary dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ENaploForras, ClaimData.SelectedTanevID.Value, toLower: true); return Json(dictionary.ToComboBoxItemList()); } public JsonResult> GetSzerzodoPozicio([DataSourceRequest] DataSourceRequest request) { IDictionary dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.SzerzodoSzemelyPozicio, ClaimData.SelectedTanevID.Value, toLower: true); return Json(dictionary.ToComboBoxItemList()); } } }