using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Mvc; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Resources; using Kreta.Web.Areas.Adminisztracio.ApiControllers; using Kreta.Web.Areas.Adminisztracio.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Models; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.Adminisztracio.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)] public class AdatszotarController : Controller { /// /// Default view visszaadás /// /// public ActionResult Index() => View(nameof(Index), new AdatszotarSearchModel()); /// /// Új adatszótár felviteli popup /// /// /// public ActionResult OpenAdatszotarNewPopUp(int adatszotarTipusId) { if (Core.Constants.NemBovithetoAdatszotarTipusLista.Contains(adatszotarTipusId)) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.KivalasztottAdatszotarNemBovitheto); } var tipusok = GetAdatszotarTipusList(false); var model = new AdatszotarGridModel(); model.AdatszotarTipusList = tipusok; model.AdatszotarTipusNev = ((GeneratedAdatszotarTipusEnum)adatszotarTipusId).ToString(); model.AdatszotarTipusId = adatszotarTipusId; model.Sorszam = GetAdatszotarSorszam((GeneratedAdatszotarTipusEnum)adatszotarTipusId); model.ZaradekSzovegList = ZaradekSzovegModel.AdatszotarNyelvCoToZaradekSzovegModel(); if (adatszotarTipusId == (int)GeneratedAdatszotarTipusEnum.ErtekelesMod) { model.Suly = ErtekelesModCo.DefaultSuly; } var pm = new PopUpModel(model, "Adatszotar_Bevitel"); pm.AddCancelBtn(pm, "AdatszotarHelper.newCancel"); pm.AddOkBtn(pm, "AdatszotarHelper.newSave"); return PartialView(Constants.General.PopupView, pm); } /// /// Adatszótár módosításkori popup /// /// /// public ActionResult OpenAdatszotarModPopUp(int id) { AdatszotarGridModel model = new AdatszotarApiController().GetAdatszotarElem(id); model.AdatszotarTipusList = GetAdatszotarTipusList(); var pm = new PopUpModel(model, "Adatszotar_Bevitel"); pm.AddCancelBtn(pm, "AdatszotarHelper.modifiedCancel"); pm.AddOkBtn(pm, "AdatszotarHelper.modifiedSave"); return PartialView(Constants.General.PopupView, pm); } /// /// Adatszótár típus lista /// /// /// private List GetAdatszotarTipusList(bool getDefaultValue = true) { var tipusok = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEditableAdatszotarTipusok().OrderBy(x => x.megnevezes).ToList(); var sli = new List(); if (getDefaultValue) { sli.Add(new SelectListItem() { Value = "-1", Text = CommonResource.KeremValasszon }); } foreach ((int id, string megnevezes) in tipusok) { sli.Add(new SelectListItem() { Value = id.ToString(), Text = megnevezes }); } return sli; } /// /// Új adatszótár sorszám visszadása /// /// /// private int? GetAdatszotarSorszam(GeneratedAdatszotarTipusEnum adatszotarTipus) { var helper = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return helper.GetAdatszotarMaxSorszam(adatszotarTipus) + 1; } } }