/ *
* API du serveur de l ' application de digitalisation des EP
*
* API qui sra utilisée afin de faire communiquer le client et le serveur ainsi que le serveur et la boîte noire .
*
* OpenAPI spec version : 1.3 . 6
*
* Generated by : https : //github.com/swagger-api/swagger-codegen.git
* /
using System ;
using System.Collections.Generic ;
using Microsoft.AspNetCore.Mvc ;
using Swashbuckle.AspNetCore.Annotations ;
using Swashbuckle.AspNetCore.SwaggerGen ;
using Newtonsoft.Json ;
using System.ComponentModel.DataAnnotations ;
using IO.Swagger.Attributes ;
using IO.Swagger.Security ;
using Microsoft.AspNetCore.Authorization ;
using IO.Swagger.DTO ;
using EPAServeur.IServices ;
using Microsoft.Extensions.Logging ;
using IO.Swagger.ClientCollaborateur ;
using EPAServeur.Exceptions ;
using Microsoft.EntityFrameworkCore ;
using System.Threading.Tasks ;
namespace IO.Swagger.Controllers
{
/// <summary>
///
/// </summary>
[ApiController]
public class NotesApiController : ControllerBase
{
/// <summary>
/// Service des note
/// </summary>
private readonly INoteService noteService ;
/// <summary>
/// Logger du contrôleur
/// </summary>
private readonly ILogger < NotesApiController > logger ;
public NotesApiController ( INoteService _ noteService , ILogger < NotesApiController > _l ogger )
{
noteService = _ noteService ;
logger = _l ogger ;
}
/// <summary>
///
/// </summary>
/// <remarks>Créer une nouvelle note.</remarks>
/// <param name="body"></param>
/// <response code="201">Note créée avec succès</response>
/// <response code="401">L'utilisateur souhaitant accéder à la ressource n'est pas authentifié</response>
/// <response code="403">L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants</response>
/// <response code="415">L’opération ne peut pas être effectuée car certaines données sont manquantes</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpPost]
[Route("/api/notes/")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("AddNote")]
[SwaggerResponse(statusCode: 201, type: typeof(DetailsNoteDTO), description: "Note créée avec succès")]
[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: 415, type: typeof(ErreurDTO), description: "L’opération ne peut pas être effectuée car certaines données sont manquantes")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task < IActionResult > AddNote ( [ FromBody ] DetailsNoteDTO body )
{
try
{
body = await noteService . AjouterNoteAsync ( body ) ;
}
catch ( ApiException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur est survenue lors de la récupération des données collaborateurs" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( NoteInvalideException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur . Message ) ;
}
catch ( ReferentNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( CollaborateurNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( CollaborateurPartiException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( DbUpdateException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
Message = "Une erreur est survenue sur le serveur" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
Message = "Une erreur inconnue est survenue sur le serveur" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
return Created ( "" , body ) ;
//TODO: Uncomment the next line to return response 201 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(201, default(DetailsNoteDTO));
//TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(401, default(ErreurDTO));
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(403, default(ErreurDTO));
//TODO: Uncomment the next line to return response 415 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(415, default(ErreurDTO));
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(500, default(ErreurDTO));
}
/// <summary>
///
/// </summary>
/// <remarks>Supprimer une note.</remarks>
/// <param name="idNote">Id d'une note</param>
/// <response code="204">Note supprimée avec succès</response>
/// <response code="401">L'utilisateur souhaitant accéder à la ressource n'est pas authentifié</response>
/// <response code="403">L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants</response>
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpDelete]
[Route("/api/notes/{idNote}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("DeleteNote")]
[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: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task < IActionResult > DeleteNote ( [ FromRoute ] [ Required ] long? idNote )
{
try
{
await noteService . SupprimerNoteAsync ( idNote ) ;
}
catch ( NoteNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message
} ;
return NotFound ( erreur ) ;
}
catch ( DbUpdateException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur est survenue lors de la suppression"
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur inconnue est survenue"
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
return NoContent ( ) ;
//TODO: Uncomment the next line to return response 204 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(204);
//TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(401, default(ErreurDTO));
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(403, default(ErreurDTO));
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(404, default(ErreurDTO));
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(500, default(ErreurDTO));
}
/// <summary>
///
/// </summary>
/// <remarks>Récupérer une note par son id.</remarks>
/// <param name="idNote">Id d'une note</param>
/// <response code="200">OK</response>
/// <response code="401">L'utilisateur souhaitant accéder à la ressource n'est pas authentifié</response>
/// <response code="403">L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants</response>
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet]
[Route("/api/notes/{idNote}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("GetNoteById")]
[SwaggerResponse(statusCode: 200, type: typeof(DetailsNoteDTO), 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: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task < IActionResult > GetNoteById ( [ FromRoute ] [ Required ] long? idNote )
{
DetailsNoteDTO note ;
try
{
note = await noteService . GetNoteByIdAsync ( idNote ) ;
}
catch ( ReferentNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( CollaborateurNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( NoteNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur inconnue est survenue" ,
} ;
return StatusCode ( 5 0 0 , erreur ) ;
}
return Ok ( note ) ;
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(200, default(DetailsNoteDTO));
//TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(401, default(ErreurDTO));
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(403, default(ErreurDTO));
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(404, default(ErreurDTO));
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(500, default(ErreurDTO));
}
/// <summary>
///
/// </summary>
/// <remarks>Récupérer les notes d’un auteur.</remarks>
/// <param name="idAuteur">Id de l'auteur</param>
/// <param name="asc">Indique si les données sont récupérées dans l'ordre croissant ou non</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="texte">Texte permettant de filtrer les données</param>
/// <param name="tri">Colonne du tableau sur lequel le tri devra être effectué</param>
/// <response code="200">OK</response>
/// <response code="401">L'utilisateur souhaitant accéder à la ressource n'est pas authentifié</response>
/// <response code="403">L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants</response>
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet]
[Route("/api/notes/auteur/{idAuteur}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("GetNotesAuteur")]
[SwaggerResponse(statusCode: 200, type: typeof(List<AffichageNoteDTO>), 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: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task < IActionResult > GetNotesAuteur ( [ FromRoute ] [ Required ] Guid ? idAuteur , [ FromQuery ] bool? asc , [ FromQuery ] int? numPage , [ FromQuery ] [ Range ( 5 , 1 0 0 ) ] int? parPage , [ FromQuery ] string texte , [ FromQuery ] string tri )
{
IEnumerable < AffichageNoteDTO > affichageNotes ;
try
{
affichageNotes = await noteService . GetNotesByAuteurAsync ( idAuteur , asc , numPage , parPage , texte , tri ) ;
//affichageNotes = noteService.GetNotesByAuteur(idAuteur, asc, numPage, parPage, texte, tri);
}
catch ( ReferentNotFoundException e )
{
ErreurDTO erreurDTO = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreurDTO ) ;
}
catch ( ApiException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur est survenue lors de la récupération des informations collaborateurs" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
//Message = "Une erreur inconnue est survenue",
Message = e . StackTrace ,
} ;
return StatusCode ( 5 0 0 , erreur ) ;
}
return Ok ( affichageNotes ) ;
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(200, default(List<AffichageNoteDTO>));
//TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(401, default(ErreurDTO));
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(403, default(ErreurDTO));
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(404, default(ErreurDTO));
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(500, default(ErreurDTO));
}
/// <summary>
///
/// </summary>
/// <remarks>Récupérer le nombre total de notes d’un auteur.</remarks>
/// <param name="idAuteur">Id de l'auteur</param>
/// <param name="texte">Texte permettant de filtrer les données</param>
/// <response code="200">OK</response>
/// <response code="401">L'utilisateur souhaitant accéder à la ressource n'est pas authentifié</response>
/// <response code="403">L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants</response>
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet]
[Route("/api/notes/auteur/{idAuteur}/count")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("GetNotesAuteurCount")]
[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: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task < IActionResult > GetNotesAuteurCount ( [ FromRoute ] [ Required ] Guid ? idAuteur , [ FromQuery ] string texte )
{
int notes ;
try
{
notes = await noteService . GetNotesByAuteurCountAsync ( idAuteur , texte ) ;
}
catch ( ApiException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreurDTO = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur est survenue lors de la récupération des informations collaborateurs" ,
} ;
return StatusCode ( 5 0 0 , erreurDTO ) ;
}
catch ( ReferentNotFoundException e )
{
ErreurDTO erreurDTO = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreurDTO ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreurDTO = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur inconnue es survenue sur le serveur" ,
} ;
return StatusCode ( 5 0 0 , erreurDTO ) ;
}
return Ok ( notes ) ;
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(200, default(long?));
//TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(401, default(ErreurDTO));
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(403, default(ErreurDTO));
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(404, default(ErreurDTO));
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(500, default(ErreurDTO));
}
/// <summary>
///
/// </summary>
/// <remarks>Modifier une note.</remarks>
/// <param name="body"></param>
/// <param name="idNote">Id d'une note</param>
/// <response code="200">Note modifiée avec succès</response>
/// <response code="401">L'utilisateur souhaitant accéder à la ressource n'est pas authentifié</response>
/// <response code="403">L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants</response>
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="415">L’opération ne peut pas être effectuée car certaines données sont manquantes</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpPut]
[Route("/api/notes/{idNote}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[SwaggerOperation("UpdateNote")]
[SwaggerResponse(statusCode: 200, type: typeof(DetailsNoteDTO), description: "Note modifiée avec succès")]
[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: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")]
[SwaggerResponse(statusCode: 415, type: typeof(ErreurDTO), description: "L’opération ne peut pas être effectuée car certaines données sont manquantes")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual async Task < IActionResult > UpdateNote ( [ FromBody ] DetailsNoteDTO body , [ FromRoute ] [ Required ] long? idNote )
{
try
{
body = await noteService . UpdateNoteAsync ( idNote , body ) ;
}
catch ( NoteIdImcompatibleException e )
{
ErreurDTO erreur = new ErreurDTO
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
} catch ( NoteInvalideException e )
{
ErreurDTO erreur = new ErreurDTO
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( DbUpdateConcurrencyException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
Message = "Une erreur est survenue sur le serveur" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( DbUpdateException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
Message = "Une erreur est survenue sur le serveur" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
Message = "Une erreur inconnue est survenue sur le serveur" ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
return Ok ( body ) ;
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(200, default(DetailsNoteDTO));
//TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(401, default(ErreurDTO));
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(403, default(ErreurDTO));
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(404, default(ErreurDTO));
//TODO: Uncomment the next line to return response 415 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(415, default(ErreurDTO));
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
// return StatusCode(500, default(ErreurDTO));
}
}
}