kreta/KretaWeb/Areas/MobileApi/Naplo/NaploV2Controller.cs
2024-03-13 00:33:46 +01:00

113 lines
6.2 KiB
C#

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<TanmenetGetResponse> ListTanmenet([FromUri] TanmenetGetRequest request)
=> CoToModel(this.Facade().ListTanmenet(request));
[HttpGet, Route("Ora/OrarendiOra/JavasoltJelenlet")]
public List<OrarendiOra.JavasoltJelenletGetResponse> ListJavasoltJelenlet([FromUri] OrarendiOra.JavasoltJelenletGetRequest request)
=> CoToModel(this.Facade().ListJavasoltJelenlet(request));
[HttpGet, Route("Ora/TanitasiOra/JavasoltJelenlet")]
public List<TanitasiOra.JavasoltJelenletGetResponse> ListJavasoltJelenletTanitasiOra([FromUri] TanitasiOra.JavasoltJelenletGetRequest request)
=> CoToModel(this.Facade().ListJavasoltJelenlet(request));
[HttpGet, Route("Ora/Feljegyzes")]
public ResponseWrapper<List<FeljegyzesResponse>> GetFeljegyzesLista([FromUri] FeljegyzesRequest request)
=> ResponseWrapper<List<FeljegyzesResponse>>.Create(this.Facade().FeljegyzesLista(request), CoToModel);
[HttpGet, Route("Ora/Mulasztas")]
public ResponseWrapper<List<MulasztasResponse>> GetMulasztasLista([FromUri] MulasztasRequest request)
=> ResponseWrapper<List<MulasztasResponse>>.Create(this.Facade().MulasztasLista(request), CoToModel);
[HttpGet, Route("Ora/JavasoltJelenletTemplate")]
public ResponseWrapper<List<JavasoltJelenletTemplateGetResponse>> ListJavasoltJelenletTemplate([FromUri] JavasoltJelenletTemplateGetRequest request)
=> ResponseWrapper<List<JavasoltJelenletTemplateGetResponse>>.Create(this.Facade().ListJavasoltJelenletTemplate(request), CoToModel);
[HttpGet, Route("Enum/NaploEnum")]
public ResponseWrapper<List<NaploEnumListItem>> GetNaploEnum([FromUri] EnumRequest request)
=> ResponseWrapper<List<NaploEnumListItem>>.Create(this.Facade().GetNaploEnum(request), CoToModel);
[HttpGet, Route("Orarend/OraLista")]
public ResponseWrapper<List<OraGetResponse>> GetOraLista([FromUri] OraGetRequest request)
=> ResponseWrapper<List<OraGetResponse>>.Create(this.Facade().OraLista(request), CoToModel);
[HttpGet, Route("Ora/OsztalyTanuloi")]
public ResponseWrapper<OsztalyTanuloiResponse> GetOsztalyTanuloi([FromUri] OsztalyTanuloiRequest request)
=> ResponseWrapper<OsztalyTanuloiResponse>.Create(this.Facade().GetOsztalyTanuloi(request), CoToModel);
[HttpGet, Route("Tanar/Profil")]
public ResponseWrapper<ProfilResponse> GetProfil([FromUri] ProfilRequest request)
=> ResponseWrapper<ProfilResponse>.Create(this.Facade().Profil(request), CoToModel);
[HttpGet, Route("Iskolaor")]
public ResponseWrapper<List<IskolaorResponse>> GetIskolaor([FromUri] IskolaorRequest request)
=> ResponseWrapper<List<IskolaorResponse>>.Create(this.Facade().Iskolaor(request), CoToModel);
[HttpPost, Route("Orarend/OraNaplozas")]
public List<OraNaplozasResponse> CreateOraNaplozas(List<OraNaplozasRequest> request)
=> CoToModel(this.Facade().CreateOraNaplozas(ModelToCo(request)));
[HttpPost, Route("Ertekeles/OsztalyCsoportErtekeles")]
public List<ErtekelesResponse> CreateOsztalyCsoportErtekeles(List<OsztalyCsoportErtekelesRequest> 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<ErtekelesGetResponse> 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();
}
}