kreta/Kreta.WebApi/Naplo/Kreta.Naplo.WebApi/V3/Controllers/OrarendController.cs
2024-03-13 00:33:46 +01:00

149 lines
9.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Client.CoreApi;
using Kreta.Naplo.BusinessLogic.V3.Orarend;
using Kreta.Naplo.Domain.V3.Enum;
using Kreta.Naplo.Domain.V3.Orarend;
using Kreta.Naplo.Dto.V3.Exception;
using Kreta.Naplo.Dto.V3.Orarend;
using Kreta.Naplo.Dto.V3.OsztalyCsoport;
using Kreta.Naplo.WebApi.FilterAttributes;
using Kreta.Naplo.WebApi.V3.Common.Logic;
using Kreta.Naplo.WebApi.V3.Documentation;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Naplo.Dto.V3.Converter.ResponseModelConverter;
namespace Kreta.Naplo.WebApi.V3.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanar)]
[RoutePrefix(Constants.RoutePrefix + "/Orarend")]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.RequestTimeout, DescriptionLookUp.KeresTullepteMaxFutasiIdot, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.RequestTimeout, typeof(TimeOutExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class OrarendController : ApiController
{
private readonly IFileServiceHelper _fileServiceHelper;
private readonly ICoreApiClient _coreApiClient;
public OrarendController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
_coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
}
/// <summary>
/// Órarend lekérdezése
/// </summary>
[HttpGet, Route("")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.OraTorolveLett, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras, typeof(OrarendElemResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<OrarendController, OrarendElemResponseDto>))]
public HashSet<OrarendElemResponseDto> GetOrarend([FromUri] OrarendRequestDto request)
{
return ModelToDto(((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetOrarend(request));
}
/// <summary>
/// Órarend elem entitás lekérdezése
/// </summary>
[HttpGet, Route("OrarendElem")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.OraTorolveLett, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras, typeof(OrarendElemResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProviderWithDependencyInjection<OrarendController, OrarendElemResponseDto>))]
public OrarendElemResponseDto GetOrarendElem([FromUri] OrarendElemRequestDto request)
{
return ((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetOrarendElem(request);
}
/// <summary>
/// Óra naplózása
/// </summary>
[HttpPost, Route("OraNaplozas")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.NaplozasSikertelenAzOraMarNemLetezikAKivalasztottNapon, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.OraNaplozasaSikeres)]
public string OraNaplozas(OraNaplozasRequestDto request)
{
return ((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo(), _fileServiceHelper, _coreApiClient)).OraNaplozas(request);
}
/// <summary>
/// Óra naplózási adatok törlése
/// </summary>
[HttpDelete, Route("OraNaplozas")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.OraTorolveLett, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.OraNaplozasTorlesSikeres)]
public string OraNaplozasTorles([FromUri] OraNaplozasTorlesRequestDto request)
{
return ((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).OraNaplozasTorles(request);
}
[HttpGet, Route("Jelenlet")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.OraTorolveLett, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanuloJelenletResponseLeiras, typeof(TanuloJelenletResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<OrarendController, TanuloJelenletResponseDto>))]
public IEnumerable<TanuloJelenletResponseDto> GetJelenlet([FromUri] TanuloJelenletRequestDto request)
{
return ModelToDto(((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetTanuloJelenlet(request));
}
[HttpGet, Route("Hetirend")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionLookUp.HetirendSzoveg, typeof(HetirendListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<OrarendController, HetirendListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<HetirendListRequest, HetirendListRequest>))]
public IEnumerable<HetirendListResponseDto> ListHetirend([FromUri] HetirendListRequestDto request)
{
return ModelToDto(((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).ListHetirend(request));
}
/// <summary>
/// Bejelentett számonkérés lekérdezése
/// </summary>
/// <param name="id">Számonkérés id</param>
[HttpGet, Route("BejelentettSzamonkeres/{id}")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras, typeof(BejelentettSzamonkeresekResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProviderWithDependencyInjection<OrarendController, BejelentettSzamonkeresekResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(NaploExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public BejelentettSzamonkeresekResponseDto GetBejelentettSzamonkeres([FromUri] int id)
{
return ((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetBejelentettSzamonkeres(id);
}
[HttpDelete, Route("BejelentettSzamonkeres/{id}")]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.SzamonkeresTorleseSikeres)]
public void DeleteBejelentettSzamonkeres([FromUri] int id)
{
((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).DeleteBejelentettSzamonkeres(id);
}
[HttpPost, Route("BejelentettSzamonkeres")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.SzamonkeresRogzitesSikeres)]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))]
[SwaggerRequestExample(typeof(SzamonkeresRequestDto), typeof(SzamonkeresRequestDto))]
public void PostSzamonkeres(SzamonkeresRequestDto request)
{
((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).PostSzamonkeres(request);
}
}
}