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;
}
}
}