using System; using System.Collections.Generic; using System.Net; using System.Web.Http; using Kreta.Naplo.BusinessLogic.V3.OsztalyCsoport; using Kreta.Naplo.Domain.V3.Enum; using Kreta.Naplo.Dto.V3.Converter; using Kreta.Naplo.Dto.V3.Exception; 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 + "/OsztalyCsoport")] [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 OsztalyCsoportController : ApiController { [HttpGet, Route("Ertekeles")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanuloErtekeleseiResponseLeiras, typeof(OsztalyCsoportErtekelesekResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider))] public HashSet GetTanuloErtekelesek([FromUri] OsztalyCsoportErtekelesekRequestDto request) { return ModelToDto(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetOsztalyCsoportErtekelesek(request)); } [HttpPost, Route("Ertekeles")] [SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.ErtekelesRogzitesSikeres)] [SwaggerRequestExample(typeof(OsztalyCsoportErtekelesRequestDto), typeof(OsztalyCsoportErtekelesRequestDto))] public void CreateOsztalyCsoportErtekeles(List request) { ((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).CreateOsztalyCsoportErtekeles(RequestModelConverter.DtoToModel(request)); } /// /// Mondatbank lekérdezése /// [HttpGet, Route("Ertekeles/Mondatbank")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.MondatbankResponseLeiras, typeof(MondatbankResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider))] [SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))] public IEnumerable GetMondatbank([FromUri] MondatbankRequestDto request) { return ModelToDto(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetMondatbank(request)); } [HttpGet, Route("Tanulok")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.OsztalyCsoportTanuloiResponseLeiras, typeof(OsztalyCsoportTanuloResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider))] public IEnumerable GetOsztalyCsoportTanuloi([FromUri] OsztalyCsoportTanuloRequestDto request) { return ModelToDto(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetOsztalyCsoportTanuloi(request)); } [HttpGet, Route("Tanulok/{id}")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.OsztalyCsoportTanuloAdatokResponseLeiras, typeof(OsztalyCsoportTanuloAdatokResponseDto))] [SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))] public OsztalyCsoportTanuloAdatokResponseDto GetOsztalyCsoportTanuloAdatok([FromUri] int id) { return ((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetOsztalyCsoportTanuloAdatok(id); } [HttpGet, Route("")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.OsztalyCsoportResponseLeiras, typeof(OsztalyokCsoportokResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider))] public IEnumerable GetOsztalyokCsoportok() { return ModelToDto(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetOsztalyokCsoportok()); } [HttpGet, Route("Tanulok/Ertekeles")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanuloErtekeleseiResponseLeiras, typeof(TanuloErtekelesekResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider))] [SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))] public IEnumerable GetTanuloErtekelesei([FromUri] TanuloErtekelesekRequestDto request) { return ModelToDto(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetTanuloErtekelesei(request)); } [HttpPut, Route("Tanulok/Ertekeles/{id}")] [SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanuloErtekelesMentesSikeres, typeof(TanuloErtekelesMentesRequestDto))] [SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(NaploExceptionResponseDto))] public void TanuloErtekelesMentes([FromUri] int id, [FromBody] TanuloErtekelesMentesRequestDto request) { ((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).TanuloErtekelesMentes(id, request); } [HttpDelete, Route("Tanulok/Ertekeles/{id}")] [SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.ErtekelesTorleseSikeres)] public void DeleteOsztalyCsoportErtekeles([FromUri] int id) { ((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).DeleteOsztalyCsoportErtekeles(id); } /// /// Bejelentett számonkérések lekérdezése /// [HttpGet, Route("BejelentettSzamonkeres")] [SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.BejelentettSzamonkeresResponseLeiras, typeof(BejelentettSzamonkeresekResponseDto))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection))] [SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(NaploExceptionResponseDto))] [SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))] public IEnumerable GetBejelentettSzamonkeresek([FromUri] BejelentettSzamonkeresekRequestDto request) { return ModelToDto(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).GetBejelentettSzamonkeresek(request)); } } }