diff --git a/EPAServeur/Controllers/DemandesFormationApi.cs b/EPAServeur/Controllers/DemandesFormationApi.cs index 481eb87..8ee3a47 100644 --- a/EPAServeur/Controllers/DemandesFormationApi.cs +++ b/EPAServeur/Controllers/DemandesFormationApi.cs @@ -134,7 +134,7 @@ namespace IO.Swagger.Controllers /// Une erreur est survenue sur le serveur [HttpDelete] [Route("/api/demandesformation/{idDemandeFormation}")] - [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] + //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("DeleteDemandeFormation")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L'utilisateur souhaitant accéder à la ressource n'est pas authentifié")] @@ -226,6 +226,7 @@ namespace IO.Swagger.Controllers /// Récupérer la liste des demandes de formation. /// Liste des états des demandes à afficher /// liste des ids des BU auxquelles les données sont rattachées + /// Liste des statuts d'EP auxquelles les données sont rattachées /// Indique si les données sont récupérées dans l'ordre croissant ou non /// Numéro de la page du tableau à afficher /// Nombre d’élément maximum à afficher dans le tableau @@ -239,14 +240,14 @@ namespace IO.Swagger.Controllers /// Une erreur est survenue sur le serveur [HttpGet] [Route("/api/demandesformation")] - [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] + //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("GetDemandesFormation")] [SwaggerResponse(statusCode: 200, type: typeof(List), description: "OK")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L'utilisateur souhaitant accéder à la ressource n'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: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] - public virtual async Task GetDemandesFormation([FromQuery] List etatsDemande, [FromQuery] List 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 GetDemandesFormation([FromQuery] List etatsDemande, [FromQuery] List idBUs, [FromQuery] List 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()) logger.LogInformation("Récupération de la liste des demandes de formation."); @@ -255,7 +256,7 @@ namespace IO.Swagger.Controllers 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) { @@ -282,6 +283,7 @@ namespace IO.Swagger.Controllers /// Récupérer le nombre total de demandes de formation. /// Liste des états des demandes à afficher /// liste des ids des BU auxquelles les données sont rattachées + /// Liste des statuts d'EP auxquelles les données sont rattachées /// Texte permettant de filtrer les données /// Date à partir de laquelle les données son récupérées /// Date jusqu'à laquelle les données sont récupérées @@ -291,14 +293,14 @@ namespace IO.Swagger.Controllers /// Une erreur est survenue sur le serveur [HttpGet] [Route("/api/demandesformation/count")] - [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] + //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("GetDemandesFormationCount")] [SwaggerResponse(statusCode: 200, type: typeof(long?), description: "OK")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L'utilisateur souhaitant accéder à la ressource n'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: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] - public virtual async Task GetDemandesFormationCount([FromQuery] List etatsDemande, [FromQuery] List idBUs, [FromQuery] string texte, [FromQuery] DateTime? dateDebut, [FromQuery] DateTime? dateFin) + public virtual async Task GetDemandesFormationCount([FromQuery] List etatsDemande, [FromQuery] List idBUs, [FromQuery] List statutsEp, [FromQuery] string texte, [FromQuery] DateTime? dateDebut, [FromQuery] DateTime? dateFin) { if (env.IsDevelopment()) logger.LogInformation("Récupération du nombre total de demandes de formation."); @@ -307,7 +309,7 @@ namespace IO.Swagger.Controllers try { - count = await demandeFormationService.GetDemandesFormationCountAsync(etatsDemande, idBUs, texte, dateDebut, dateFin); + count = await demandeFormationService.GetDemandesFormationCountAsync(etatsDemande, idBUs, statutsEp, texte, dateDebut, dateFin); } catch (Exception e) { @@ -338,7 +340,7 @@ namespace IO.Swagger.Controllers /// Une erreur est survenue sur le serveur [HttpGet] [Route("/api/originesdemandeformation")] - [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] + //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("GetOriginesDemandeFormation")] [SwaggerResponse(statusCode: 200, type: typeof(List), description: "OK")] @@ -389,7 +391,7 @@ namespace IO.Swagger.Controllers /// Une erreur est survenue sur le serveur [HttpPut] [Route("/api/demandesformation/{idDemandeFormation}")] - [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] + //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("UpdateDemandeFormation")] [SwaggerResponse(statusCode: 200, type: typeof(DemandeFormationDTO), description: "demande formation mise à jour")] diff --git a/EPAServeur/IServices/IDemandeFormationService.cs b/EPAServeur/IServices/IDemandeFormationService.cs index e2613c1..579bb01 100644 --- a/EPAServeur/IServices/IDemandeFormationService.cs +++ b/EPAServeur/IServices/IDemandeFormationService.cs @@ -12,8 +12,8 @@ namespace EPAServeur.IServices public interface IDemandeFormationService { Task> GetOriginesDemandeFormationAsync(); - Task> GetDemandesFormationAsync(List etatsDemande, List idBUs, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin); - Task GetDemandesFormationCountAsync(List etatsDemande, List idBUs, string texte, DateTime? dateDebut, DateTime? dateFin); + Task> GetDemandesFormationAsync(List etatsDemande, List idBUs, List statutsEp, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin); + Task GetDemandesFormationCountAsync(List etatsDemande, List idBUs, List statutsEp, string texte, DateTime? dateDebut, DateTime? dateFin); Task AddDemandeFormationAsync(DemandeFormationDTO demandeFormationDTO); Task UpdateDemandeFormationAsync(long idDemandeFormation, DemandeFormationDTO demandeFormationDTO); Task DeleteDemandeFormationAsync(long idDemandeFormation); diff --git a/EPAServeur/Services/DemandeFormationService.cs b/EPAServeur/Services/DemandeFormationService.cs index 33f345b..208a63d 100644 --- a/EPAServeur/Services/DemandeFormationService.cs +++ b/EPAServeur/Services/DemandeFormationService.cs @@ -99,6 +99,7 @@ namespace EPAServeur.Services /// /// Liste des états des demandes à afficher /// liste des ids des BU auxquelles les données sont rattachées + /// Liste des statuts d'EP auxquelles les données sont rattachées /// Indique si les données sont récupérées dans l'ordre croissant ou non /// Numéro de la page du tableau à afficher /// Nombre d’élément maximum à afficher dans le tableau @@ -107,7 +108,7 @@ namespace EPAServeur.Services /// Date à partir de laquelle les données son récupérées /// Date jusqu'à laquelle les données sont récupérées /// - public async Task> GetDemandesFormationAsync(List etatsDemande, List idBUs, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin) + public async Task> GetDemandesFormationAsync(List etatsDemande, List idBUs, List statutsEp, bool? asc, int? numPage, int? parPage, string texte, string tri, DateTime? dateDebut, DateTime? dateFin) { IQueryable query; IEnumerable demandeFormations; @@ -120,7 +121,7 @@ namespace EPAServeur.Services .Include(demandeFormation => demandeFormation.ParticipationFormation) .ThenInclude(participationFormation => participationFormation.Formation); - query = StatutEpFilter(query); + query = StatutEpFilter(query, statutsEp); query = EtatsDemandeFilter(query, etatsDemande); query = IdBUsFilter(query, idBUs); query = DateFilter(query, dateDebut, dateFin); @@ -143,11 +144,12 @@ namespace EPAServeur.Services /// /// Liste des états des demandes à afficher /// liste des ids des BU auxquelles les données sont rattachées + /// Liste des statuts d'EP auxquelles les données sont rattachées /// Texte permettant de filtrer les données /// Date à partir de laquelle les données son récupérées /// Date jusqu'à laquelle les données sont récupérées /// - public async Task GetDemandesFormationCountAsync(List etatsDemande, List idBUs, string texte, DateTime? dateDebut, DateTime? dateFin) + public async Task GetDemandesFormationCountAsync(List etatsDemande, List idBUs, List statutsEp, string texte, DateTime? dateDebut, DateTime? dateFin) { IQueryable query; IEnumerable demandeFormations; @@ -160,7 +162,7 @@ namespace EPAServeur.Services .Include(demandeFormation => demandeFormation.ParticipationFormation) .ThenInclude(participationFormation => participationFormation.Formation); - query = StatutEpFilter(query); + query = StatutEpFilter(query, statutsEp); query = EtatsDemandeFilter(query, etatsDemande); query = IdBUsFilter(query, idBUs); 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. /// /// - /// + /// /// - private IQueryable StatutEpFilter(IQueryable query) + private IQueryable StatutEpFilter(IQueryable query, List statutsEp) { - IEnumerable statutsEp = Enum.GetValues(typeof(StatutEp)).Cast().Where(statut => statut == StatutEp.Cree || EstEpEnCours(statut)); - - return query.Where(demandeFormation => statutsEp.Contains(demandeFormation.Ep.Statut)); + if (statutsEp != null && statutsEp.Count > 0) + return query.Where(demandeFormation => statutsEp.Contains(demandeFormation.Ep.Statut)); + else + return query; } ///