using System; using System.Collections.Generic; using System.Web; using System.Web.Http; using System.Web.Http.Results; using Kreta.BusinessLogic.Classes.ComboBox; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Core.KIR.Domain.Model; using Kreta.Core.KIR.Factory.Interface; using Kreta.Web.Areas.KirImportExport.Logic; using Kreta.Web.Security; namespace Kreta.Web.Areas.KirImportExport.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public abstract class BaseApiController : ApiController { protected internal IKirServiceFactory KirServiceFactory { get; } protected internal IKir2ServiceFactory Kir2ServiceFactory { get; } protected internal AuthHeaderModel AuthHeaderModel { get; } protected internal KirImportHelper KirImportHelper { get; } protected internal KirExportHelper2 KirExportHelper { get; } protected internal string KirKretaKodCacheKey => $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_KirKretaKod"; protected internal string KirTokenCacheKey => $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_KirToken"; protected internal readonly string KirPedagugisListCacheKey; protected internal readonly string KirTanuloListCacheKey; protected internal BaseApiController(IKirServiceFactory kirServiceFactory, IKir2ServiceFactory kir2ServiceFactory) { KirServiceFactory = kirServiceFactory ?? throw new ArgumentNullException(nameof(kirServiceFactory)); Kir2ServiceFactory = kir2ServiceFactory ?? throw new ArgumentNullException(nameof(kir2ServiceFactory)); if (Cache.Get($"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_KirLogin") is AuthHeaderModel authHeaderModel) { AuthHeaderModel = authHeaderModel; var kirImportHelper = new KirImportHelper(kirServiceFactory, authHeaderModel); KirPedagugisListCacheKey = $"{ClaimData.IntezmenyAzonosito}_{ClaimData.FelhasznaloId}_KirPedagugisList"; KirTanuloListCacheKey = $"{ClaimData.IntezmenyAzonosito}_{ClaimData.FelhasznaloId}_KirTanuloList"; if (Cache.Get(KirKretaKodCacheKey) is string kretaKod && !string.IsNullOrWhiteSpace(kretaKod)) { kirImportHelper.KretaKod = kretaKod; } KirImportHelper = kirImportHelper; if (HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("IndexExport")) { string kirToken = Cache.Get(KirTokenCacheKey) as string; if (authHeaderModel.KirToken != kirToken) { authHeaderModel.KirToken = kirToken; } AuthHeaderModel = authHeaderModel; var kirExportHelper = new KirExportHelper2(kir2ServiceFactory, authHeaderModel, ClaimData.OrganizationCode, ClaimData.IntezmenyAzonosito); KirExportHelper = kirExportHelper; } } } public JsonResult> GetKirTelephelyList() { return Json(new KirImportLogic().GetKirTelephelyList(KirImportHelper)); } } }