Ajout du paramètre statutsEp dans GetDemandesFormations et GetDemandesFormationCount

develop
jboinembalome 4 years ago
parent b48c53aa28
commit 301c6e456a
  1. 20
      EPAServeur/Controllers/DemandesFormationApi.cs
  2. 4
      EPAServeur/IServices/IDemandeFormationService.cs
  3. 21
      EPAServeur/Services/DemandeFormationService.cs

@ -134,7 +134,7 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response> /// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpDelete] [HttpDelete]
[Route("/api/demandesformation/{idDemandeFormation}")] [Route("/api/demandesformation/{idDemandeFormation}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState] [ValidateModelState]
[SwaggerOperation("DeleteDemandeFormation")] [SwaggerOperation("DeleteDemandeFormation")]
[SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L&#x27;utilisateur souhaitant accéder à la ressource n&#x27;est pas authentifié")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L&#x27;utilisateur souhaitant accéder à la ressource n&#x27;est pas authentifié")]
@ -226,6 +226,7 @@ namespace IO.Swagger.Controllers
/// <remarks>Récupérer la liste des demandes de formation.</remarks> /// <remarks>Récupérer la liste des demandes de formation.</remarks>
/// <param name="etatsDemande">Liste des états des demandes à afficher</param> /// <param name="etatsDemande">Liste des états des demandes à afficher</param>
/// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param> /// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param>
/// <param name="statutsEp">Liste des statuts d'EP auxquelles les données sont rattachées</param>
/// <param name="asc">Indique si les données sont récupérées dans l&#x27;ordre croissant ou non</param> /// <param name="asc">Indique si les données sont récupérées dans l&#x27;ordre croissant ou non</param>
/// <param name="numPage">Numéro de la page du tableau à afficher</param> /// <param name="numPage">Numéro de la page du tableau à afficher</param>
/// <param name="parPAge">Nombre d’élément maximum à afficher dans le tableau</param> /// <param name="parPAge">Nombre d’élément maximum à afficher dans le tableau</param>
@ -239,14 +240,14 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response> /// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet] [HttpGet]
[Route("/api/demandesformation")] [Route("/api/demandesformation")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState] [ValidateModelState]
[SwaggerOperation("GetDemandesFormation")] [SwaggerOperation("GetDemandesFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(List<DemandeFormationDTO>), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(List<DemandeFormationDTO>), description: "OK")]
[SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L&#x27;utilisateur souhaitant accéder à la ressource n&#x27;est pas authentifié")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L&#x27;utilisateur souhaitant accéder à la ressource n&#x27;est pas authentifié")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] [SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task<IActionResult> GetDemandesFormation([FromQuery] List<EtatDemande> etatsDemande, [FromQuery] List<long?> idBUs, [FromQuery] bool? asc, [FromQuery] int? numPage, [FromQuery][Range(5, 100)] int? parPAge, [FromQuery] string texte, [FromQuery] string tri, [FromQuery] DateTime? dateDebut, [FromQuery] DateTime? dateFin) public virtual async Task<IActionResult> GetDemandesFormation([FromQuery] List<EtatDemande> etatsDemande, [FromQuery] List<long?> idBUs, [FromQuery] List<StatutEp> statutsEp, [FromQuery] bool? asc, [FromQuery] int? numPage, [FromQuery][Range(5, 100)] int? parPAge, [FromQuery] string texte, [FromQuery] string tri, [FromQuery] DateTime? dateDebut, [FromQuery] DateTime? dateFin)
{ {
if (env.IsDevelopment()) if (env.IsDevelopment())
logger.LogInformation("Récupération de la liste des demandes de formation."); logger.LogInformation("Récupération de la liste des demandes de formation.");
@ -255,7 +256,7 @@ namespace IO.Swagger.Controllers
try try
{ {
demandeFormations = await demandeFormationService.GetDemandesFormationAsync(etatsDemande, idBUs, asc, numPage, parPAge, texte, tri, dateDebut, dateFin); demandeFormations = await demandeFormationService.GetDemandesFormationAsync(etatsDemande, idBUs, statutsEp, asc, numPage, parPAge, texte, tri, dateDebut, dateFin);
} }
catch (Exception e) catch (Exception e)
{ {
@ -282,6 +283,7 @@ namespace IO.Swagger.Controllers
/// <remarks>Récupérer le nombre total de demandes de formation.</remarks> /// <remarks>Récupérer le nombre total de demandes de formation.</remarks>
/// <param name="etatsDemande">Liste des états des demandes à afficher</param> /// <param name="etatsDemande">Liste des états des demandes à afficher</param>
/// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param> /// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param>
/// <param name="statutsEp">Liste des statuts d'EP auxquelles les données sont rattachées</param>
/// <param name="texte">Texte permettant de filtrer les données</param> /// <param name="texte">Texte permettant de filtrer les données</param>
/// <param name="dateDebut">Date à partir de laquelle les données son récupérées</param> /// <param name="dateDebut">Date à partir de laquelle les données son récupérées</param>
/// <param name="dateFin">Date jusqu&#x27;à laquelle les données sont récupérées</param> /// <param name="dateFin">Date jusqu&#x27;à laquelle les données sont récupérées</param>
@ -291,14 +293,14 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response> /// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet] [HttpGet]
[Route("/api/demandesformation/count")] [Route("/api/demandesformation/count")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState] [ValidateModelState]
[SwaggerOperation("GetDemandesFormationCount")] [SwaggerOperation("GetDemandesFormationCount")]
[SwaggerResponse(statusCode: 200, type: typeof(long?), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(long?), description: "OK")]
[SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L&#x27;utilisateur souhaitant accéder à la ressource n&#x27;est pas authentifié")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L&#x27;utilisateur souhaitant accéder à la ressource n&#x27;est pas authentifié")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] [SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task<IActionResult> GetDemandesFormationCount([FromQuery] List<EtatDemande> etatsDemande, [FromQuery] List<long?> idBUs, [FromQuery] string texte, [FromQuery] DateTime? dateDebut, [FromQuery] DateTime? dateFin) public virtual async Task<IActionResult> GetDemandesFormationCount([FromQuery] List<EtatDemande> etatsDemande, [FromQuery] List<long?> idBUs, [FromQuery] List<StatutEp> statutsEp, [FromQuery] string texte, [FromQuery] DateTime? dateDebut, [FromQuery] DateTime? dateFin)
{ {
if (env.IsDevelopment()) if (env.IsDevelopment())
logger.LogInformation("Récupération du nombre total de demandes de formation."); logger.LogInformation("Récupération du nombre total de demandes de formation.");
@ -307,7 +309,7 @@ namespace IO.Swagger.Controllers
try try
{ {
count = await demandeFormationService.GetDemandesFormationCountAsync(etatsDemande, idBUs, texte, dateDebut, dateFin); count = await demandeFormationService.GetDemandesFormationCountAsync(etatsDemande, idBUs, statutsEp, texte, dateDebut, dateFin);
} }
catch (Exception e) catch (Exception e)
{ {
@ -338,7 +340,7 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response> /// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet] [HttpGet]
[Route("/api/originesdemandeformation")] [Route("/api/originesdemandeformation")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState] [ValidateModelState]
[SwaggerOperation("GetOriginesDemandeFormation")] [SwaggerOperation("GetOriginesDemandeFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(List<OrigineDemandeFormationDTO>), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(List<OrigineDemandeFormationDTO>), description: "OK")]
@ -389,7 +391,7 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response> /// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpPut] [HttpPut]
[Route("/api/demandesformation/{idDemandeFormation}")] [Route("/api/demandesformation/{idDemandeFormation}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState] [ValidateModelState]
[SwaggerOperation("UpdateDemandeFormation")] [SwaggerOperation("UpdateDemandeFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(DemandeFormationDTO), description: "demande formation mise à jour")] [SwaggerResponse(statusCode: 200, type: typeof(DemandeFormationDTO), description: "demande formation mise à jour")]

@ -12,8 +12,8 @@ namespace EPAServeur.IServices
public interface IDemandeFormationService public interface IDemandeFormationService
{ {
Task<IEnumerable<OrigineDemandeFormationDTO>> GetOriginesDemandeFormationAsync(); Task<IEnumerable<OrigineDemandeFormationDTO>> GetOriginesDemandeFormationAsync();
Task<IEnumerable<DemandeFormationDTO>> GetDemandesFormationAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin); Task<IEnumerable<DemandeFormationDTO>> GetDemandesFormationAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, List<StatutEp> statutsEp, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin);
Task<long> GetDemandesFormationCountAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, string texte, DateTime? dateDebut, DateTime? dateFin); Task<long> GetDemandesFormationCountAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, List<StatutEp> statutsEp, string texte, DateTime? dateDebut, DateTime? dateFin);
Task<DemandeFormationDTO> AddDemandeFormationAsync(DemandeFormationDTO demandeFormationDTO); Task<DemandeFormationDTO> AddDemandeFormationAsync(DemandeFormationDTO demandeFormationDTO);
Task<DemandeFormationDTO> UpdateDemandeFormationAsync(long idDemandeFormation, DemandeFormationDTO demandeFormationDTO); Task<DemandeFormationDTO> UpdateDemandeFormationAsync(long idDemandeFormation, DemandeFormationDTO demandeFormationDTO);
Task<bool> DeleteDemandeFormationAsync(long idDemandeFormation); Task<bool> DeleteDemandeFormationAsync(long idDemandeFormation);

@ -99,6 +99,7 @@ namespace EPAServeur.Services
/// </summary> /// </summary>
/// <param name="etatsDemande">Liste des états des demandes à afficher</param> /// <param name="etatsDemande">Liste des états des demandes à afficher</param>
/// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param> /// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param>
/// <param name="statutsEp">Liste des statuts d'EP auxquelles les données sont rattachées</param>
/// <param name="asc">Indique si les données sont récupérées dans l&#x27;ordre croissant ou non</param> /// <param name="asc">Indique si les données sont récupérées dans l&#x27;ordre croissant ou non</param>
/// <param name="numPage">Numéro de la page du tableau à afficher</param> /// <param name="numPage">Numéro de la page du tableau à afficher</param>
/// <param name="parPage">Nombre d’élément maximum à afficher dans le tableau</param> /// <param name="parPage">Nombre d’élément maximum à afficher dans le tableau</param>
@ -107,7 +108,7 @@ namespace EPAServeur.Services
/// <param name="dateDebut">Date à partir de laquelle les données son récupérées</param> /// <param name="dateDebut">Date à partir de laquelle les données son récupérées</param>
/// <param name="dateFin">Date jusqu&#x27;à laquelle les données sont récupérées</param> /// <param name="dateFin">Date jusqu&#x27;à laquelle les données sont récupérées</param>
/// <returns></returns> /// <returns></returns>
public async Task<IEnumerable<DemandeFormationDTO>> GetDemandesFormationAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin) public async Task<IEnumerable<DemandeFormationDTO>> GetDemandesFormationAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, List<StatutEp> statutsEp, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin)
{ {
IQueryable<DemandeFormation> query; IQueryable<DemandeFormation> query;
IEnumerable<DemandeFormation> demandeFormations; IEnumerable<DemandeFormation> demandeFormations;
@ -120,7 +121,7 @@ namespace EPAServeur.Services
.Include(demandeFormation => demandeFormation.ParticipationFormation) .Include(demandeFormation => demandeFormation.ParticipationFormation)
.ThenInclude(participationFormation => participationFormation.Formation); .ThenInclude(participationFormation => participationFormation.Formation);
query = StatutEpFilter(query); query = StatutEpFilter(query, statutsEp);
query = EtatsDemandeFilter(query, etatsDemande); query = EtatsDemandeFilter(query, etatsDemande);
query = IdBUsFilter(query, idBUs); query = IdBUsFilter(query, idBUs);
query = DateFilter(query, dateDebut, dateFin); query = DateFilter(query, dateDebut, dateFin);
@ -143,11 +144,12 @@ namespace EPAServeur.Services
/// </summary> /// </summary>
/// <param name="etatsDemande">Liste des états des demandes à afficher</param> /// <param name="etatsDemande">Liste des états des demandes à afficher</param>
/// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param> /// <param name="idBUs">liste des ids des BU auxquelles les données sont rattachées</param>
/// <param name="statutsEp">Liste des statuts d'EP auxquelles les données sont rattachées</param>
/// <param name="texte">Texte permettant de filtrer les données</param> /// <param name="texte">Texte permettant de filtrer les données</param>
/// <param name="dateDebut">Date à partir de laquelle les données son récupérées</param> /// <param name="dateDebut">Date à partir de laquelle les données son récupérées</param>
/// <param name="dateFin">Date jusqu&#x27;à laquelle les données sont récupérées</param> /// <param name="dateFin">Date jusqu&#x27;à laquelle les données sont récupérées</param>
/// <returns></returns> /// <returns></returns>
public async Task<long> GetDemandesFormationCountAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, string texte, DateTime? dateDebut, DateTime? dateFin) public async Task<long> GetDemandesFormationCountAsync(List<EtatDemande> etatsDemande, List<long?> idBUs, List<StatutEp> statutsEp, string texte, DateTime? dateDebut, DateTime? dateFin)
{ {
IQueryable<DemandeFormation> query; IQueryable<DemandeFormation> query;
IEnumerable<DemandeFormation> demandeFormations; IEnumerable<DemandeFormation> demandeFormations;
@ -160,7 +162,7 @@ namespace EPAServeur.Services
.Include(demandeFormation => demandeFormation.ParticipationFormation) .Include(demandeFormation => demandeFormation.ParticipationFormation)
.ThenInclude(participationFormation => participationFormation.Formation); .ThenInclude(participationFormation => participationFormation.Formation);
query = StatutEpFilter(query); query = StatutEpFilter(query, statutsEp);
query = EtatsDemandeFilter(query, etatsDemande); query = EtatsDemandeFilter(query, etatsDemande);
query = IdBUsFilter(query, idBUs); query = IdBUsFilter(query, idBUs);
query = DateFilter(query, dateDebut, dateFin); query = DateFilter(query, dateDebut, dateFin);
@ -492,13 +494,14 @@ namespace EPAServeur.Services
/// Ajouter un filtre pour récupérer les demandes de formation en fonction du statut de l'EP. /// Ajouter un filtre pour récupérer les demandes de formation en fonction du statut de l'EP.
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <param name="etatsDemande"></param> /// <param name="statutsEp"></param>
/// <returns></returns> /// <returns></returns>
private IQueryable<DemandeFormation> StatutEpFilter(IQueryable<DemandeFormation> query) private IQueryable<DemandeFormation> StatutEpFilter(IQueryable<DemandeFormation> query, List<StatutEp> statutsEp)
{ {
IEnumerable<StatutEp> statutsEp = Enum.GetValues(typeof(StatutEp)).Cast<StatutEp>().Where(statut => statut == StatutEp.Cree || EstEpEnCours(statut)); if (statutsEp != null && statutsEp.Count > 0)
return query.Where(demandeFormation => statutsEp.Contains(demandeFormation.Ep.Statut));
return query.Where(demandeFormation => statutsEp.Contains(demandeFormation.Ep.Statut)); else
return query;
} }
/// <summary> /// <summary>

Loading…
Cancel
Save