129 lines
8.5 KiB
C#
129 lines
8.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Web.Http;
|
|
using Kreta.Core.FeatureToggle;
|
|
using Kreta.Ellenorzo.BL.VN.Ertekeles;
|
|
using Kreta.Ellenorzo.BL.VN.Ertekeles.Atlag.OsztalyAtlag;
|
|
using Kreta.Ellenorzo.BL.VN.Ertekeles.Atlag.TantargyiAtlag;
|
|
using Kreta.Ellenorzo.Domain.VN.Ertekeles;
|
|
using Kreta.Ellenorzo.Domain.VN.Ertekeles.Atlag.OsztalyAtlag;
|
|
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
|
|
using Kreta.Ellenorzo.Dto.VN.Ertekeles;
|
|
using Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.OsztalyAtlag;
|
|
using Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.TantargyiAtlag;
|
|
using Kreta.Ellenorzo.Dto.VN.Exception;
|
|
using Kreta.Ellenorzo.Enums;
|
|
using Kreta.Ellenorzo.Enums.VN;
|
|
using Kreta.Ellenorzo.Web.FilterAttributes;
|
|
using Kreta.Ellenorzo.WebApi.FilterAttributes;
|
|
using Kreta.Ellenorzo.WebApi.VN.Documentation;
|
|
using Kreta.Ellenorzo.WebApi.VN.Logic;
|
|
using Swashbuckle.Examples;
|
|
using Swashbuckle.Swagger.Annotations;
|
|
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
|
|
|
|
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
|
|
{
|
|
[ApiKeyAuthorization]
|
|
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
|
|
[RoutePrefix(Constants.RoutePrefix)]
|
|
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
|
|
[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.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
|
|
public class ErtekelesController : ApiController
|
|
{
|
|
private IFeatureContext FeatureContext { get; }
|
|
|
|
public ErtekelesController(IFeatureContext featureContext)
|
|
{
|
|
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tanuló egy értékelése
|
|
/// </summary>
|
|
/// <param name="uid">Uid filter</param>
|
|
[HttpGet, Route("Sajat/Ertekelesek/{uid}")]
|
|
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ErtekelesResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
|
|
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
|
|
public ErtekelesListResponseDto GetErtekeles(string uid)
|
|
{
|
|
return ((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).GetErtekeles(uid);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tanuló értékelései
|
|
/// </summary>
|
|
[HttpGet, Route("Sajat/Ertekelesek")]
|
|
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
|
|
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<ErtekelesListRequest, ErtekelesListRequest>))]
|
|
public HashSet<ErtekelesListResponseDto> ListErtekeles([FromUri] ErtekelesListRequestDto request)
|
|
{
|
|
return ModelToDto(((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloErtekeles(request));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tanuló bizonyítvány értékelései
|
|
/// </summary>
|
|
[HttpGet, Route("Sajat/Ertekelesek/Bizonyitvany")]
|
|
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
|
|
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<ErtekelesListRequest, ErtekelesListRequest>))]
|
|
public HashSet<ErtekelesListResponseDto> ListBizonyitvany([FromUri] ErtekelesListRequestDto request)
|
|
{
|
|
return ModelToDto(((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloErtekeles(request, ErtekelesekTipusEnum.BizonyitvanyErtekelesTipus));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tanuló évközi + egyéb (modulzáró vizsga, pótvizsga...) értékelései
|
|
/// </summary>
|
|
[HttpGet, Route("Sajat/Ertekelesek/NemBizonyitvany")]
|
|
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
|
|
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<ErtekelesListRequest, ErtekelesListRequest>))]
|
|
public HashSet<ErtekelesListResponseDto> ListNemBizonyitvanyok([FromUri] ErtekelesListRequestDto request)
|
|
{
|
|
return ModelToDto(((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloErtekeles(request, ErtekelesekTipusEnum.NemBizonyitvanyErtekelesTipus));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tanuló összes tanult tantárgyának átlaga
|
|
/// </summary>
|
|
[HttpGet, Route("Sajat/Ertekelesek/Atlagok/TantargyiAtlagok")]
|
|
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TantargyiAtlagResponseLeiras + DescriptionOneNote.TantargyiAtlagok, typeof(SajatTantargyiAtlagListResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, SajatTantargyiAtlagListResponseDto>))]
|
|
public List<SajatTantargyiAtlagListResponseDto> ListAktualisTanuloTantargyiAtlag([FromUri] SajatTantargyiAtlagListRequestDto request)
|
|
{
|
|
return ModelToDto(((TantargyiAtlagFacade)Activator.CreateInstance(typeof(TantargyiAtlagFacade), FelhasznaloLogic.GetFelhasznalo(), FeatureContext)).ListAktualisTanuloTantargyiAtlag(request));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tanuló összes tanult tantárgyának átlaga és osztályátlaga
|
|
/// </summary>
|
|
[HttpGet, Route("Sajat/Ertekelesek/Atlagok/OsztalyAtlagok")]
|
|
[SwaggerResponse(HttpStatusCode.OK,
|
|
DescriptionLookUp.OsztalyatlagResponseLeiras + DescriptionOneNote.OsztalyAtlagok, typeof(TanuloOsztalyCsoporthozViszonyitottTantargyiAtlagResponseDto))]
|
|
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, SajatOsztalyAtlagListResponseDto>))]
|
|
public HashSet<SajatOsztalyAtlagListResponseDto> ListOsztalyAtlag([FromUri] SajatOsztalyAtlagListRequestDto request)
|
|
{
|
|
return ModelToDto(((OsztalyAtlagFacade)Activator.CreateInstance(typeof(OsztalyAtlagFacade), FelhasznaloLogic.GetFelhasznalo()))
|
|
.ListAktualisTanuloOsztalyAtlag(new OsztalyAtlagListRequest(request.TantargyUid)
|
|
{
|
|
OktatasiNevelesiFeladatUid = new OktatasiNevelesiFeladatUid(request.OktatasiNevelesiFeladatUid),
|
|
IsAtlagNeeded = true
|
|
}));
|
|
}
|
|
}
|
|
}
|