namespace Kreta.Web.Areas.MobileApi.Naplo { using System; using System.Collections.Generic; using System.Web.Http; using Kreta.BusinessLogic.Classes.MobileApi.Common.Co; using Kreta.BusinessLogic.Classes.MobileApi.Naplo; using Kreta.BusinessLogic.Interfaces; using Kreta.Client.CoreApi; using Kreta.Naplo.Domain.V2.Model; using Kreta.Naplo.Domain.V2.Model.CustomEnum; using Kreta.Naplo.Domain.V2.Model.Get.Enum; using Kreta.Naplo.Domain.V2.Model.Get.OpenBoard; using Kreta.Naplo.Domain.V2.Model.Get.Ora.JavasoltJelenletTemplate; using Kreta.Naplo.Domain.V2.Model.Get.Orarend; using Kreta.Naplo.Domain.V2.Model.Get.Tanar; using Kreta.Naplo.Domain.V2.Model.Get.Tanmenet; using Kreta.Naplo.Domain.V2.Model.Get.Tanulo; using Kreta.Naplo.Domain.V2.Model.Post.Ertekeles; using Kreta.Naplo.Domain.V2.Model.Post.Naplozas; using Kreta.Naplo.Domain.V2.Model.Post.OpenBoard; using Kreta.Web.Areas.MobileApi.Attributes; using Kreta.Web.Security; using static Kreta.Naplo.Domain.V2.Model.Converter.GetModelConverter; using static Kreta.Naplo.Domain.V2.Model.Converter.PostModelConverter; using OrarendiOra = Kreta.Naplo.Domain.V2.Model.Get.Ora.OrarendiOra.JavasoltJelenlet; using TanitasiOra = Kreta.Naplo.Domain.V2.Model.Get.Ora.TanitasiOra.JavasoltJelenlet; [MobileApiAuthorization, LocalRequestOnly, RoutePrefix("api/Mobile/Naplo/V2")] public class NaploV2Controller : ApiController { private readonly IFileServiceHelper fileServiceHelper; private readonly ICoreApiClient coreApiClient; public NaploV2Controller(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient) { this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper)); this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient)); } [HttpGet, Route("Tanmenet")] public List ListTanmenet([FromUri] TanmenetGetRequest request) => CoToModel(this.Facade().ListTanmenet(request)); [HttpGet, Route("Ora/OrarendiOra/JavasoltJelenlet")] public List ListJavasoltJelenlet([FromUri] OrarendiOra.JavasoltJelenletGetRequest request) => CoToModel(this.Facade().ListJavasoltJelenlet(request)); [HttpGet, Route("Ora/TanitasiOra/JavasoltJelenlet")] public List ListJavasoltJelenletTanitasiOra([FromUri] TanitasiOra.JavasoltJelenletGetRequest request) => CoToModel(this.Facade().ListJavasoltJelenlet(request)); [HttpGet, Route("Ora/Feljegyzes")] public ResponseWrapper> GetFeljegyzesLista([FromUri] FeljegyzesRequest request) => ResponseWrapper>.Create(this.Facade().FeljegyzesLista(request), CoToModel); [HttpGet, Route("Ora/Mulasztas")] public ResponseWrapper> GetMulasztasLista([FromUri] MulasztasRequest request) => ResponseWrapper>.Create(this.Facade().MulasztasLista(request), CoToModel); [HttpGet, Route("Ora/JavasoltJelenletTemplate")] public ResponseWrapper> ListJavasoltJelenletTemplate([FromUri] JavasoltJelenletTemplateGetRequest request) => ResponseWrapper>.Create(this.Facade().ListJavasoltJelenletTemplate(request), CoToModel); [HttpGet, Route("Enum/NaploEnum")] public ResponseWrapper> GetNaploEnum([FromUri] EnumRequest request) => ResponseWrapper>.Create(this.Facade().GetNaploEnum(request), CoToModel); [HttpGet, Route("Orarend/OraLista")] public ResponseWrapper> GetOraLista([FromUri] OraGetRequest request) => ResponseWrapper>.Create(this.Facade().OraLista(request), CoToModel); [HttpGet, Route("Ora/OsztalyTanuloi")] public ResponseWrapper GetOsztalyTanuloi([FromUri] OsztalyTanuloiRequest request) => ResponseWrapper.Create(this.Facade().GetOsztalyTanuloi(request), CoToModel); [HttpGet, Route("Tanar/Profil")] public ResponseWrapper GetProfil([FromUri] ProfilRequest request) => ResponseWrapper.Create(this.Facade().Profil(request), CoToModel); [HttpGet, Route("Iskolaor")] public ResponseWrapper> GetIskolaor([FromUri] IskolaorRequest request) => ResponseWrapper>.Create(this.Facade().Iskolaor(request), CoToModel); [HttpPost, Route("Orarend/OraNaplozas")] public List CreateOraNaplozas(List request) => CoToModel(this.Facade().CreateOraNaplozas(ModelToCo(request))); [HttpPost, Route("Ertekeles/OsztalyCsoportErtekeles")] public List CreateOsztalyCsoportErtekeles(List request) => CoToModel(this.Facade().CreateOsztalyCsoportErtekeles(ModelToCo(request))); [HttpPost, Route("OpenBoard/FajlFeltoltes")] public FeltoltottFajlResponse CreateFajlFeltoltes(FeltoltottFajlRequest request) => CoToModel(this.Facade().CreateFajlFeltoltes(ModelToCo(request))); [HttpGet, Route("OpenBoard/FeltolthetoFajlokSzama")] public FeltolthetoFajlokSzamaResponse GetFeltolthetoFajlokSzama([FromUri] FeltolthetoFajlokSzamaRequest request) { return CoToModel(this.Facade().GetFeltolthetoFajlokSzama(ModelToCo(request))); } [HttpGet, Route("Tanulo/Ertekeles")] public List GetTanuloErtekelesei([FromUri] ErtekelesGetRequest request) { return CoToModel(this.Facade().GetTanuloErtekelesei(ModelToCo(request))); } private NaploFacadeV2 Facade() => new NaploFacadeV2(this.MobileUser(), fileServiceHelper, coreApiClient); private MobileUser MobileUser() => ModelConverter.MobileUserModelConverter.GetFromHttpContext(); } }