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)); } /// /// Órarend lekérdezése /// [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))] public HashSet GetOrarend([FromUri] OrarendRequestDto request) { return ModelToDto(((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetOrarend(request)); } /// /// Órarend elem entitás lekérdezése /// [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))] public OrarendElemResponseDto GetOrarendElem([FromUri] OrarendElemRequestDto request) { return ((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetOrarendElem(request); } /// /// Óra naplózása /// [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); } /// /// Óra naplózási adatok törlése /// [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))] public IEnumerable 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))] [SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample))] public IEnumerable ListHetirend([FromUri] HetirendListRequestDto request) { return ModelToDto(((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).ListHetirend(request)); } /// /// Bejelentett számonkérés lekérdezése /// /// Számonkérés id [HttpGet, Route("BejelentettSzamonkeres/{id}")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras, typeof(BejelentettSzamonkeresekResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProviderWithDependencyInjection))] [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); } } }