|
|
@ -18,6 +18,9 @@ using IO.Swagger.Attributes; |
|
|
|
using IO.Swagger.Security; |
|
|
|
using IO.Swagger.Security; |
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
using IO.Swagger.DTO; |
|
|
|
using IO.Swagger.DTO; |
|
|
|
|
|
|
|
using EPAServeur.IServices; |
|
|
|
|
|
|
|
using System.Reflection.Metadata.Ecma335; |
|
|
|
|
|
|
|
using System.Runtime.InteropServices.WindowsRuntime; |
|
|
|
|
|
|
|
|
|
|
|
namespace IO.Swagger.Controllers |
|
|
|
namespace IO.Swagger.Controllers |
|
|
|
{ |
|
|
|
{ |
|
|
@ -27,6 +30,13 @@ namespace IO.Swagger.Controllers |
|
|
|
[ApiController] |
|
|
|
[ApiController] |
|
|
|
public class FormationsApiController : ControllerBase |
|
|
|
public class FormationsApiController : ControllerBase |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
private readonly IFormationService formationService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public FormationsApiController(IFormationService _formationService) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
formationService = _formationService; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
@ -36,19 +46,23 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpPost] |
|
|
|
[HttpPost] |
|
|
|
[Route("/api/formations")] |
|
|
|
[Route("/api/formations")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("AjouterFormation")] |
|
|
|
[SwaggerOperation("AjouterFormation")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
public virtual IActionResult AjouterFormation([FromBody]FormationDTO body) |
|
|
|
public virtual IActionResult AjouterFormation([FromBody] FormationDTO body) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 201 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
FormationDTO nouvelleFormation = formationService.AddFormation(body); |
|
|
|
// return StatusCode(201); |
|
|
|
|
|
|
|
|
|
|
|
return Created("", nouvelleFormation); |
|
|
|
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//if (body.Id != null && body.Id > 0) |
|
|
|
// return StatusCode(403, default(ErreurDTO)); |
|
|
|
//{ |
|
|
|
|
|
|
|
// return StatusCode(201, body); |
|
|
|
throw new NotImplementedException(); |
|
|
|
//} |
|
|
|
|
|
|
|
//else |
|
|
|
|
|
|
|
//{ |
|
|
|
|
|
|
|
// return NotFound(); |
|
|
|
|
|
|
|
//} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -60,19 +74,22 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpDelete] |
|
|
|
[HttpDelete] |
|
|
|
[Route("/api/formations/{idFormation}/supprimer")] |
|
|
|
[Route("/api/formations/{idFormation}/supprimer")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("DeleteFormation")] |
|
|
|
[SwaggerOperation("DeleteFormation")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
public virtual IActionResult DeleteFormation([FromRoute][Required]long? idFormation) |
|
|
|
public virtual IActionResult DeleteFormation([FromRoute][Required] long? idFormation) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 204 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
if (!formationService.DeleteFormationById(idFormation)) |
|
|
|
// return StatusCode(204); |
|
|
|
{ |
|
|
|
|
|
|
|
ErreurDTO erreur = new 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)); |
|
|
|
Code = "404", |
|
|
|
|
|
|
|
Message = "Aucune formation trouvée" |
|
|
|
throw new NotImplementedException(); |
|
|
|
}; |
|
|
|
|
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return NoContent(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -90,29 +107,27 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/formations/annulees")] |
|
|
|
[Route("/api/formations/annulees")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetFormationAnnulees")] |
|
|
|
[SwaggerOperation("GetFormationAnnulees")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
public virtual IActionResult GetFormationAnnulees([FromQuery][Required()]bool? asc, [FromQuery][Required()]int? numPage, [FromQuery][Required()]int? parPAge, [FromQuery]long? idAgence, [FromQuery]string texte, [FromQuery]string tri) |
|
|
|
public virtual IActionResult GetFormationAnnulees([FromQuery][Required()] bool? asc, [FromQuery][Required()] int? numPage, [FromQuery][Required()] int? parPAge, [FromQuery] int? idAgence, [FromQuery] string texte, [FromQuery] string tri) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<FormationDetailsDTO>)); |
|
|
|
IEnumerable<FormationDTO> formations = formationService.GetFormationAnnulees(asc, numPage, parPAge, idAgence, texte, tri); |
|
|
|
|
|
|
|
if (formations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
|
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
Code = "404", |
|
|
|
// return StatusCode(404, default(ErreurDTO)); |
|
|
|
Message = "Aucune formation annulée" |
|
|
|
string exampleJson = null; |
|
|
|
}; |
|
|
|
exampleJson = "[ {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n}, {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n} ]"; |
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(formations); |
|
|
|
? JsonConvert.DeserializeObject<List<FormationDetailsDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<FormationDetailsDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -125,29 +140,25 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/formations/{idFormation}")] |
|
|
|
[Route("/api/formations/{idFormation}")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetFormationById")] |
|
|
|
[SwaggerOperation("GetFormationById")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(FormationDTO), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(FormationDTO), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
public virtual IActionResult GetFormationById([FromRoute][Required]long? idFormation) |
|
|
|
public virtual IActionResult GetFormationById([FromRoute][Required] long? idFormation) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
FormationDTO formationDTO = formationService.GetFormationById(Convert.ToInt32(idFormation)); |
|
|
|
// return StatusCode(200, default(FormationDTO)); |
|
|
|
if (formationDTO == null) |
|
|
|
|
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
ErreurDTO erreurDTO = new ErreurDTO() |
|
|
|
// return StatusCode(403, default(ErreurDTO)); |
|
|
|
{ |
|
|
|
|
|
|
|
Code = "404", |
|
|
|
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
Message = "La formation n'existe pas", |
|
|
|
// return StatusCode(404, default(ErreurDTO)); |
|
|
|
}; |
|
|
|
string exampleJson = null; |
|
|
|
return NotFound(erreurDTO); |
|
|
|
exampleJson = "{\n \"heure\" : 5,\n \"participantsFormation\" : [ {\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\n \"idCollaborateur\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"estEvaluee\" : true,\n \"dateCreation\" : \"2000-01-23T04:56:07.000+00:00\",\n \"id\" : 2,\n \"formation\" : \"formation\",\n \"collaborateur\" : \"collaborateur\",\n \"statut\" : \"statut\"\n }, {\n \"date\" : \"2000-01-23T04:56:07.000+00:00\",\n \"idCollaborateur\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"estEvaluee\" : true,\n \"dateCreation\" : \"2000-01-23T04:56:07.000+00:00\",\n \"id\" : 2,\n \"formation\" : \"formation\",\n \"collaborateur\" : \"collaborateur\",\n \"statut\" : \"statut\"\n } ],\n \"organisme\" : \"organisme\",\n \"origine\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"jour\" : 5,\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"idAgence\" : 1,\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n }\n}"; |
|
|
|
} |
|
|
|
|
|
|
|
return Ok(formationDTO); |
|
|
|
var example = exampleJson != null |
|
|
|
|
|
|
|
? JsonConvert.DeserializeObject<FormationDTO>(exampleJson) |
|
|
|
|
|
|
|
: default(FormationDTO); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -165,31 +176,30 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/formations/realisees")] |
|
|
|
[Route("/api/formations/realisees")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetFormationRealisee")] |
|
|
|
[SwaggerOperation("GetFormationRealisee")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
public virtual IActionResult GetFormationRealisee([FromQuery][Required()]bool? asc, [FromQuery][Required()]int? numPage, [FromQuery][Required()]int? parPAge, [FromQuery]long? idAgence, [FromQuery]string texte, [FromQuery]string tri) |
|
|
|
public virtual IActionResult GetFormationRealisee([FromQuery][Required()] bool? asc, [FromQuery][Required()] int? numPage, [FromQuery][Required()] int? parPAge, [FromQuery] int? idAgence, [FromQuery] string texte, [FromQuery] string tri) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<FormationDetailsDTO>)); |
|
|
|
IEnumerable<FormationDTO> formations = formationService.GetFormationRealisee(asc, numPage, parPAge, idAgence, texte, tri); |
|
|
|
|
|
|
|
if (formations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
|
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
Code = "404", |
|
|
|
// return StatusCode(404, default(ErreurDTO)); |
|
|
|
Message = "Aucune formation réalisée" |
|
|
|
string exampleJson = null; |
|
|
|
}; |
|
|
|
exampleJson = "[ {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n}, {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n} ]"; |
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(formations); |
|
|
|
? JsonConvert.DeserializeObject<List<FormationDetailsDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<FormationDetailsDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
@ -205,25 +215,26 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/formations")] |
|
|
|
[Route("/api/formations")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetFormations")] |
|
|
|
[SwaggerOperation("GetFormations")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
public virtual IActionResult GetFormations([FromQuery][Required()]bool? asc, [FromQuery][Required()]int? numPage, [FromQuery][Required()]int? parPAge, [FromQuery]long? idAgence, [FromQuery]int? statutFormation, [FromQuery]string texte, [FromQuery]string tri) |
|
|
|
public virtual IActionResult GetFormations([FromQuery][Required()]bool? asc, [FromQuery][Required()]int? numPage, [FromQuery][Required()]int? parPAge, [FromQuery]int? idAgence, [FromQuery]int? statutFormation, [FromQuery]string texte, [FromQuery]string tri) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<FormationDetailsDTO>)); |
|
|
|
IEnumerable<FormationDTO> formations = formationService.GetFormations(asc, numPage, parPAge, idAgence, texte, tri); |
|
|
|
|
|
|
|
if (formations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
string exampleJson = null; |
|
|
|
{ |
|
|
|
exampleJson = "[ {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n}, {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n} ]"; |
|
|
|
Code = "404", |
|
|
|
|
|
|
|
Message = "Aucune formation" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(formations); |
|
|
|
? JsonConvert.DeserializeObject<List<FormationDetailsDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<FormationDetailsDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -234,7 +245,7 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/modesFormation")] |
|
|
|
[Route("/api/modesFormation")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetModesFormation")] |
|
|
|
[SwaggerOperation("GetModesFormation")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<ModeFormationDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<ModeFormationDTO>), description: "OK")] |
|
|
@ -242,17 +253,18 @@ namespace IO.Swagger.Controllers |
|
|
|
public virtual IActionResult GetModesFormation() |
|
|
|
public virtual IActionResult GetModesFormation() |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<ModeFormationDTO>)); |
|
|
|
IEnumerable<ModeFormationDTO> modeFormations = formationService.GetModesFormation(); |
|
|
|
|
|
|
|
if (modeFormations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
string exampleJson = null; |
|
|
|
{ |
|
|
|
exampleJson = "[ {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n}, {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n} ]"; |
|
|
|
Code = "404", |
|
|
|
|
|
|
|
Message = "Aucun mode de formation" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(modeFormations); |
|
|
|
? JsonConvert.DeserializeObject<List<ModeFormationDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<ModeFormationDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -263,7 +275,7 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/originesFormation")] |
|
|
|
[Route("/api/originesFormation")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetOriginesFormation")] |
|
|
|
[SwaggerOperation("GetOriginesFormation")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<OrigineFormationDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<OrigineFormationDTO>), description: "OK")] |
|
|
@ -271,17 +283,18 @@ namespace IO.Swagger.Controllers |
|
|
|
public virtual IActionResult GetOriginesFormation() |
|
|
|
public virtual IActionResult GetOriginesFormation() |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<OrigineFormationDTO>)); |
|
|
|
IEnumerable<OrigineFormationDTO> origineFormations = formationService.GetOriginesFormation(); |
|
|
|
|
|
|
|
if (origineFormations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
string exampleJson = null; |
|
|
|
{ |
|
|
|
exampleJson = "[ {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n}, {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n} ]"; |
|
|
|
Code = "404", |
|
|
|
|
|
|
|
Message = "Aucune origine de formation" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(origineFormations); |
|
|
|
? JsonConvert.DeserializeObject<List<OrigineFormationDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<OrigineFormationDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -299,29 +312,27 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
/// <response code="404">Ressource n'a pas été trouvée</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/formations/prochaines")] |
|
|
|
[Route("/api/formations/prochaines")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetProchainesFormation")] |
|
|
|
[SwaggerOperation("GetProchainesFormation")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<FormationDetailsDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")] |
|
|
|
public virtual IActionResult GetProchainesFormation([FromQuery][Required()]bool? asc, [FromQuery][Required()]int? numPage, [FromQuery][Required()]int? parPAge, [FromQuery]long? idAgence, [FromQuery]string texte, [FromQuery]string tri) |
|
|
|
public virtual IActionResult GetProchainesFormation([FromQuery][Required()] bool? asc, [FromQuery][Required()] int? numPage, [FromQuery][Required()] int? parPAge, [FromQuery] int? idAgence, [FromQuery] string texte, [FromQuery] string tri) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<FormationDetailsDTO>)); |
|
|
|
IEnumerable<FormationDTO> formations = formationService.GetProchainesFormation(asc, numPage, parPAge, idAgence, texte, tri); |
|
|
|
|
|
|
|
if (formations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
|
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
Code = "404", |
|
|
|
// return StatusCode(404, default(ErreurDTO)); |
|
|
|
Message = "Aucune prochaine formation" |
|
|
|
string exampleJson = null; |
|
|
|
}; |
|
|
|
exampleJson = "[ {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n}, {\n \"mode\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"dateDebut\" : \"2000-01-23T04:56:07.000+00:00\",\n \"estCertifie\" : true,\n \"id\" : 0,\n \"dateFin\" : \"2000-01-23T04:56:07.000+00:00\",\n \"type\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n },\n \"intitule\" : \"intitule\",\n \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n },\n \"nbPartitipants\" : 1\n} ]"; |
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(formations); |
|
|
|
? JsonConvert.DeserializeObject<List<FormationDetailsDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<FormationDetailsDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -332,7 +343,7 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/statutsFormation")] |
|
|
|
[Route("/api/statutsFormation")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetStatutsFormation")] |
|
|
|
[SwaggerOperation("GetStatutsFormation")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<StatutFormationDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<StatutFormationDTO>), description: "OK")] |
|
|
@ -340,17 +351,18 @@ namespace IO.Swagger.Controllers |
|
|
|
public virtual IActionResult GetStatutsFormation() |
|
|
|
public virtual IActionResult GetStatutsFormation() |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<StatutFormationDTO>)); |
|
|
|
IEnumerable<StatutFormationDTO> statutFormations = formationService.GetStatutsFormation(); |
|
|
|
|
|
|
|
if (statutFormations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
string exampleJson = null; |
|
|
|
{ |
|
|
|
exampleJson = "[ {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n}, {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n} ]"; |
|
|
|
Code = "404", |
|
|
|
|
|
|
|
Message = "Aucun statut de formation" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(statutFormations); |
|
|
|
? JsonConvert.DeserializeObject<List<StatutFormationDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<StatutFormationDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -361,7 +373,7 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpGet] |
|
|
|
[HttpGet] |
|
|
|
[Route("/api/typesFormation")] |
|
|
|
[Route("/api/typesFormation")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("GetTypesFormation")] |
|
|
|
[SwaggerOperation("GetTypesFormation")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<TypeFormationDTO>), description: "OK")] |
|
|
|
[SwaggerResponse(statusCode: 200, type: typeof(List<TypeFormationDTO>), description: "OK")] |
|
|
@ -369,17 +381,18 @@ namespace IO.Swagger.Controllers |
|
|
|
public virtual IActionResult GetTypesFormation() |
|
|
|
public virtual IActionResult GetTypesFormation() |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//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<TypeFormationDTO>)); |
|
|
|
IEnumerable<TypeFormationDTO> typeFormations = formationService.GetTypesFormation(); |
|
|
|
|
|
|
|
if (typeFormations == null) |
|
|
|
//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)); |
|
|
|
ErreurDTO erreur = new ErreurDTO() |
|
|
|
string exampleJson = null; |
|
|
|
{ |
|
|
|
exampleJson = "[ {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n}, {\n \"libelle\" : \"libelle\",\n \"id\" : 5\n} ]"; |
|
|
|
Code = "404", |
|
|
|
|
|
|
|
Message = "Aucun type de formation" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
return NotFound(erreur); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var example = exampleJson != null |
|
|
|
return Ok(typeFormations); |
|
|
|
? JsonConvert.DeserializeObject<List<TypeFormationDTO>>(exampleJson) |
|
|
|
|
|
|
|
: default(List<TypeFormationDTO>); //TODO: Change the data returned |
|
|
|
|
|
|
|
return new ObjectResult(example); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -393,22 +406,33 @@ namespace IO.Swagger.Controllers |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
/// <response code="403">Acces interdit</response> |
|
|
|
[HttpPut] |
|
|
|
[HttpPut] |
|
|
|
[Route("/api/formations/{idFormation}/update")] |
|
|
|
[Route("/api/formations/{idFormation}/update")] |
|
|
|
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
//[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] |
|
|
|
[ValidateModelState] |
|
|
|
[ValidateModelState] |
|
|
|
[SwaggerOperation("UpdateFormation")] |
|
|
|
[SwaggerOperation("UpdateFormation")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] |
|
|
|
public virtual IActionResult UpdateFormation([FromBody]FormationDTO body, [FromRoute][Required]long? idFormation) |
|
|
|
public virtual IActionResult UpdateFormation([FromBody] FormationDTO body, [FromRoute][Required] long? idFormation) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
FormationDTO formation = formationService.UpdateFormation(body); |
|
|
|
// return StatusCode(200); |
|
|
|
if (formation == null) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
formation = formationService.AddFormation(body); |
|
|
|
|
|
|
|
return Created("", formation); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return Ok(formation); |
|
|
|
|
|
|
|
|
|
|
|
//TODO: Uncomment the next line to return response 201 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
|
|
|
|
// return StatusCode(201); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ... |
|
|
|
//switch (formationService.UpdateFormation(body)) |
|
|
|
// return StatusCode(403, default(ErreurDTO)); |
|
|
|
//{ |
|
|
|
|
|
|
|
// case 0: |
|
|
|
|
|
|
|
// return Ok(); |
|
|
|
|
|
|
|
// case 1: |
|
|
|
|
|
|
|
// return StatusCode(201); |
|
|
|
|
|
|
|
// case 2: |
|
|
|
|
|
|
|
// return Forbid(); |
|
|
|
|
|
|
|
// default: |
|
|
|
|
|
|
|
// return NotFound(); |
|
|
|
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
|
|
throw new NotImplementedException(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|