Implémentation complète du service formation et de l'api formation

develop
jboinembalome 4 years ago
parent cda46536ee
commit 2f0b45406c
  1. 294
      Controllers/FormationsApi.cs
  2. 16
      IServices/IFormationService.cs
  3. 192
      Services/FormationService.cs

@ -19,6 +19,8 @@ using IO.Swagger.Security;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using IO.Swagger.DTO; using IO.Swagger.DTO;
using EPAServeur.IServices; using EPAServeur.IServices;
using System.Reflection.Metadata.Ecma335;
using System.Runtime.InteropServices.WindowsRuntime;
namespace IO.Swagger.Controllers namespace IO.Swagger.Controllers
{ {
@ -50,15 +52,17 @@ namespace IO.Swagger.Controllers
[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)
{ {
switch (formationService.AddFormation(body)) FormationDTO nouvelleFormation = formationService.AddFormation(body);
{
case 0: return Created("", nouvelleFormation);
return StatusCode(201); //if (body.Id != null && body.Id > 0)
case 1: //{
return Forbid(); // return StatusCode(201, body);
default: //}
return NotFound(); //else
} //{
// return NotFound();
//}
} }
/// <summary> /// <summary>
@ -76,31 +80,16 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
public virtual IActionResult DeleteFormation([FromRoute][Required] decimal? idFormation) public virtual IActionResult DeleteFormation([FromRoute][Required] decimal? idFormation)
{ {
int id = 0; if (!formationService.DeleteFormationById(idFormation))
try
{
id = Convert.ToInt32(idFormation);
}
catch (Exception ex)
{ {
ErreurDTO erreurDTO = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
{ {
Code = "403", Code = "404",
Message = "Impossible de convertir le paramètre idFormation en int. " + ex.Message Message = "Aucune formation trouvée"
}; };
return StatusCode(403, erreurDTO); return NotFound(erreur);
} }
switch (formationService.DeleteFormationById(id))
{
case 0:
return NoContent(); return NoContent();
case 1:
return Forbid();
default:
return NotFound();
}
} }
/// <summary> /// <summary>
@ -127,20 +116,18 @@ namespace IO.Swagger.Controllers
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) 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, formationService.GetFormationAnnulees()); 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>
@ -161,31 +148,17 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")] [SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")]
public virtual IActionResult GetFormationById([FromRoute][Required] decimal? idFormation) public virtual IActionResult GetFormationById([FromRoute][Required] decimal? idFormation)
{ {
//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(FormationDTO));
//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));
FormationDTO formationDTO = formationService.GetFormationById(Convert.ToInt32(idFormation)); FormationDTO formationDTO = formationService.GetFormationById(Convert.ToInt32(idFormation));
if (formationDTO == null) if (formationDTO == null)
{ {
ErreurDTO erreurDTO = new ErreurDTO() ErreurDTO erreurDTO = new ErreurDTO()
{ {
Code = "404", Code = "404",
Message = "Le formateur n'existe pas", Message = "La formation n'existe pas",
}; };
return NotFound(erreurDTO); return NotFound(erreurDTO);
} }
return Ok(formationDTO); return Ok(formationDTO);
//string exampleJson = null;
//exampleJson = "{\n \"heure\" : 1.4658129805029452,\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\" : 5,\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\" : 5,\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.962133916683182,\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 \"statut\" : {\n \"libelle\" : \"libelle\",\n \"id\" : 6\n }\n}";
// var example = exampleJson != null
// ? JsonConvert.DeserializeObject<FormationDTO>(exampleJson)
// : default(FormationDTO); //TODO: Change the data returned
//return new ObjectResult(example);
} }
/// <summary> /// <summary>
@ -212,22 +185,21 @@ namespace IO.Swagger.Controllers
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) 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, formationService.GetFormationRealisee()); 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>
@ -248,20 +220,21 @@ namespace IO.Swagger.Controllers
[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]int? 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, formationService.GetFormations()); 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>
@ -280,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, formationService.GetModesFormation()); 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>
@ -309,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, formationService.GetOriginesFormation()); 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>
@ -346,20 +321,18 @@ namespace IO.Swagger.Controllers
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) 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>
@ -378,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, formationService.GetStatutsFormation()); 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>
@ -407,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, formationService.GetTypesFormation()); 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>
@ -437,45 +412,26 @@ namespace IO.Swagger.Controllers
[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] decimal? idFormation) public virtual IActionResult UpdateFormation([FromBody] FormationDTO body, [FromRoute][Required] decimal? 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)
//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(..), ...
// return StatusCode(403, default(ErreurDTO));
int id = 0;
try
{ {
id = Convert.ToInt32(idFormation); formation = formationService.AddFormation(body);
return Created("", formation);
} }
catch (Exception ex) return Ok(formation);
{
ErreurDTO erreurDTO = new ErreurDTO()
{
Code = "403",
Message = "Impossible de convertir le paramètre idFormation en int. " + ex.Message
};
return StatusCode(403, erreurDTO);
}
switch (formationService.DeleteFormationById(id))
{
case 0:
return StatusCode(201);
case 1:
return StatusCode(200);
case 2:
return StatusCode(403);
default:
return NotFound();
}
//TODO: Uncomment the next line to return response 201 or use other options such as return this.NotFound(), return this.BadRequest(..), ... //switch (formationService.UpdateFormation(body))
formationService.UpdateFormation(body); //{
return StatusCode(201); // case 0:
// return Ok();
// case 1:
// return StatusCode(201);
// case 2:
// return Forbid();
// default:
// return NotFound();
//}
} }
} }

@ -10,19 +10,19 @@ namespace EPAServeur.IServices
{ {
public interface IFormationService public interface IFormationService
{ {
FormationDTO GetFormationById(int? id); FormationDTO GetFormationById(decimal? id);
IEnumerable<FormationDTO> GetFormations(); IEnumerable<FormationDTO> GetFormations(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<FormationDTO> GetFormationAnnulees(); IEnumerable<FormationDTO> GetFormationAnnulees(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<FormationDTO> GetFormationRealisee(); IEnumerable<FormationDTO> GetFormationRealisee(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<FormationDTO> GetProchainesFormation(); IEnumerable<FormationDTO> GetProchainesFormation(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<ModeFormationDTO> GetModesFormation(); IEnumerable<ModeFormationDTO> GetModesFormation();
IEnumerable<OrigineFormationDTO> GetOriginesFormation(); IEnumerable<OrigineFormationDTO> GetOriginesFormation();
IEnumerable<StatutFormationDTO> GetStatutsFormation(); IEnumerable<StatutFormationDTO> GetStatutsFormation();
IEnumerable<TypeFormationDTO> GetTypesFormation(); IEnumerable<TypeFormationDTO> GetTypesFormation();
byte AddFormation(FormationDTO formationDTO); FormationDTO AddFormation(FormationDTO formationDTO);
byte UpdateFormation(FormationDTO formationDTO); FormationDTO UpdateFormation(FormationDTO formationDTO);
byte DeleteFormationById(int? id); bool DeleteFormationById(decimal? id);
} }
} }

@ -4,6 +4,7 @@ using EPAServeur.Models.Formation;
using IO.Swagger.ApiCollaborateur; using IO.Swagger.ApiCollaborateur;
using IO.Swagger.DTO; using IO.Swagger.DTO;
using IO.Swagger.ModelCollaborateur; using IO.Swagger.ModelCollaborateur;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.EntityFrameworkCore.ChangeTracking;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -22,9 +23,24 @@ namespace EPAServeur.Services
epContext = _epContext; epContext = _epContext;
} }
public FormationDTO GetFormationById(int? id) public FormationDTO GetFormationById(decimal? id)
{ {
Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == id); int idFormation = 0;
try
{
idFormation = Convert.ToInt32(id);
}
catch (Exception ex)
{
return null;
}
Formation formation = epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation)
.FirstOrDefault(formation => formation.Id == idFormation);
if (formation == null) if (formation == null)
return null; return null;
@ -32,36 +48,138 @@ namespace EPAServeur.Services
return GetFormationDTO(formation); return GetFormationDTO(formation);
} }
public IEnumerable<FormationDTO> GetFormations() public IEnumerable<FormationDTO> GetFormations(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{ {
IEnumerable<Formation> formations = epContext.Formation; IEnumerable<Formation> formations;
IEnumerable<FormationDTO> formationDTOs = formations.Select(formation => GetFormationDTO(formation)); IEnumerable<FormationDTO> formationDTOs;
if (texte == null)
texte = "";
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
if (idAgence != null)
formations = epContext.Formation.Where(formation => formation.IdAgence == idAgence)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
else
formations = epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
if (formations == null)
return new List<FormationDTO>();
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs; return formationDTOs;
} }
public IEnumerable<FormationDTO> GetFormationAnnulees() public IEnumerable<FormationDTO> GetFormationAnnulees(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{ {
IEnumerable<Formation> formations = epContext.Formation; IEnumerable<Formation> formations;
IEnumerable<FormationDTO> formationDTOs = formations.Where(formation => formation.Statut.Id == 4).Select(formation => GetFormationDTO(formation)); IEnumerable<FormationDTO> formationDTOs;
if (texte == null)
texte = "";
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
if (idAgence != null)
formations = epContext.Formation.Where(formation => formation.IdAgence == idAgence && formation.Statut.Id == 4)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
else
formations = epContext.Formation.Where(formation => formation.Statut.Id == 4)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
if (formations == null)
return new List<FormationDTO>();
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs; return formationDTOs;
} }
public IEnumerable<FormationDTO> GetFormationRealisee() public IEnumerable<FormationDTO> GetFormationRealisee(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{ {
IEnumerable<Formation> formations = epContext.Formation; IEnumerable<Formation> formations;
IEnumerable<FormationDTO> formationDTOs = formations.Where(formation => formation.Statut.Id == 3).Select(formation => GetFormationDTO(formation)); IEnumerable<FormationDTO> formationDTOs;
return formationDTOs; if (texte == null)
texte = "";
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
if (idAgence != null)
formations = epContext.Formation.Where(formation => formation.IdAgence == idAgence && formation.Statut.Id == 3)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
else
formations = epContext.Formation.Where(formation => formation.Statut.Id == 3)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
if (formations == null)
return new List<FormationDTO>();
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs;
} }
public IEnumerable<FormationDTO> GetProchainesFormation() public IEnumerable<FormationDTO> GetProchainesFormation(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{ {
IEnumerable<Formation> formations = epContext.Formation; IEnumerable<Formation> formations;
IEnumerable<FormationDTO> formationDTOs = formations.Where(formation => formation.Statut.Id == 1 && formation.Statut.Id == 2).Select(formation => GetFormationDTO(formation)).OrderBy(formation => formation.DateDebut); IEnumerable<FormationDTO> formationDTOs;
if (texte == null)
texte = "";
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
if (idAgence != null)
formations = epContext.Formation.Where(formation => formation.IdAgence == idAgence && (formation.Statut.Id == 1 || formation.Statut.Id == 2))
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
else
formations = epContext.Formation.Where(formation => (formation.Statut.Id == 1 || formation.Statut.Id == 2))
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation);
if (formations == null)
return new List<FormationDTO>();
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs; return formationDTOs;
} }
@ -98,7 +216,7 @@ namespace EPAServeur.Services
return typeFormationDTOs; return typeFormationDTOs;
} }
public byte AddFormation(FormationDTO formationDTO) public FormationDTO AddFormation(FormationDTO formationDTO)
{ {
Formation formation = new Formation(); Formation formation = new Formation();
formation = SetFormation(formation, formationDTO); formation = SetFormation(formation, formationDTO);
@ -119,51 +237,49 @@ namespace EPAServeur.Services
} }
catch (Exception) catch (Exception)
{ {
return 1; return null;
} }
return 0; return GetFormationDTO(formation);
} }
public byte UpdateFormation(FormationDTO formationDTO) public FormationDTO UpdateFormation(FormationDTO formationDTO)
{ {
Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == formationDTO.Id); Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == formationDTO.Id);
if (formation == null) if (formation == null)
return 1; {
return null;
}
formation = SetFormation(formation, formationDTO); formation = SetFormation(formation, formationDTO);
try
{
epContext.SaveChanges(); epContext.SaveChanges();
}
catch (Exception)
{
return 2;
}
return 0; return GetFormationDTO(formation);
} }
public byte DeleteFormationById(int? id) public bool DeleteFormationById(decimal? id)
{ {
Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == id); int idFormation = 0;
if (formation == null)
return 1;
try try
{ {
epContext.Remove(formation); idFormation = Convert.ToInt32(id);
epContext.SaveChanges();
} }
catch (Exception) catch (Exception ex)
{ {
return 2; return false;
} }
return 0; Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == idFormation);
if (formation == null)
return false;
epContext.Remove(formation);
epContext.SaveChanges();
return true;
} }
#region Object to DTO #region Object to DTO

Loading…
Cancel
Save