Merge branch 'formation' into develop

develop
jboinembalome 4 years ago
commit c6518a5f3a
  1. 78
      Controllers/FormationsApi.cs
  2. 7
      DTO/FormationDetailsDTO.cs
  3. 20
      IServices/IFormationService.cs
  4. 480
      Services/FormationService.cs

@ -11,16 +11,13 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations; using Swashbuckle.AspNetCore.Annotations;
using Swashbuckle.AspNetCore.SwaggerGen;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using IO.Swagger.Attributes; using IO.Swagger.Attributes;
using IO.Swagger.Security;
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.Linq;
using System.Runtime.InteropServices.WindowsRuntime; using System.Threading.Tasks;
namespace IO.Swagger.Controllers namespace IO.Swagger.Controllers
{ {
@ -50,19 +47,11 @@ namespace IO.Swagger.Controllers
[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 async Task<IActionResult> AjouterFormation([FromBody] FormationDTO body)
{ {
FormationDTO nouvelleFormation = formationService.AddFormation(body); FormationDTO nouvelleFormation = await formationService.AddFormationAsync(body);
return Created("", nouvelleFormation); return Created("", nouvelleFormation);
//if (body.Id != null && body.Id > 0)
//{
// return StatusCode(201, body);
//}
//else
//{
// return NotFound();
//}
} }
/// <summary> /// <summary>
@ -78,9 +67,9 @@ namespace IO.Swagger.Controllers
[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 async Task<IActionResult> DeleteFormation([FromRoute][Required] long? idFormation)
{ {
if (!formationService.DeleteFormationById(idFormation)) if ( ! await formationService.DeleteFormationByIdAsync(idFormation))
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
{ {
@ -89,6 +78,7 @@ namespace IO.Swagger.Controllers
}; };
return NotFound(erreur); return NotFound(erreur);
} }
return NoContent(); return NoContent();
} }
@ -113,10 +103,10 @@ namespace IO.Swagger.Controllers
[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&#x27;a pas été trouvée")] [SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")]
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 async Task<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(..), ...
IEnumerable<FormationDTO> formations = formationService.GetFormationAnnulees(asc, numPage, parPAge, idAgence, texte, tri); IEnumerable<FormationDTO> formations = await formationService.GetFormationAnnuleesAsync(asc, numPage, parPAge, idAgence, texte, tri);
if (formations == null) if (formations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -146,9 +136,9 @@ namespace IO.Swagger.Controllers
[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&#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] long? idFormation) public virtual async Task<IActionResult> GetFormationById([FromRoute][Required] long? idFormation)
{ {
FormationDTO formationDTO = formationService.GetFormationById(Convert.ToInt32(idFormation)); FormationDTO formationDTO = await formationService.GetFormationByIdAsync(idFormation);
if (formationDTO == null) if (formationDTO == null)
{ {
ErreurDTO erreurDTO = new ErreurDTO() ErreurDTO erreurDTO = new ErreurDTO()
@ -182,10 +172,10 @@ namespace IO.Swagger.Controllers
[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&#x27;a pas été trouvée")] [SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")]
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 async Task<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(..), ...
IEnumerable<FormationDTO> formations = formationService.GetFormationRealisee(asc, numPage, parPAge, idAgence, texte, tri); IEnumerable<FormationDTO> formations = await formationService.GetFormationRealiseeAsync(asc, numPage, parPAge, idAgence, texte, tri);
if (formations == null) if (formations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -220,10 +210,10 @@ 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 async Task<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(..), ...
IEnumerable<FormationDTO> formations = formationService.GetFormations(asc, numPage, parPAge, idAgence, texte, tri); IEnumerable<FormationDTO> formations = await formationService.GetFormationsAsync(asc, numPage, parPAge, idAgence, texte, tri);
if (formations == null) if (formations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -250,10 +240,10 @@ namespace IO.Swagger.Controllers
[SwaggerOperation("GetModesFormation")] [SwaggerOperation("GetModesFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(List<ModeFormationDTO>), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(List<ModeFormationDTO>), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
public virtual IActionResult GetModesFormation() public virtual async Task<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(..), ...
IEnumerable<ModeFormationDTO> modeFormations = formationService.GetModesFormation(); IEnumerable<ModeFormationDTO> modeFormations = await formationService.GetModesFormationAsync();
if (modeFormations == null) if (modeFormations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -280,10 +270,10 @@ namespace IO.Swagger.Controllers
[SwaggerOperation("GetOriginesFormation")] [SwaggerOperation("GetOriginesFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(List<OrigineFormationDTO>), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(List<OrigineFormationDTO>), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
public virtual IActionResult GetOriginesFormation() public virtual async Task<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(..), ...
IEnumerable<OrigineFormationDTO> origineFormations = formationService.GetOriginesFormation(); IEnumerable<OrigineFormationDTO> origineFormations = await formationService.GetOriginesFormationAsync();
if (origineFormations == null) if (origineFormations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -318,10 +308,10 @@ namespace IO.Swagger.Controllers
[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&#x27;a pas été trouvée")] [SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")]
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 async Task<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(..), ...
IEnumerable<FormationDTO> formations = formationService.GetProchainesFormation(asc, numPage, parPAge, idAgence, texte, tri); IEnumerable<FormationDTO> formations = await formationService.GetProchainesFormationAsync(asc, numPage, parPAge, idAgence, texte, tri);
if (formations == null) if (formations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -348,10 +338,10 @@ namespace IO.Swagger.Controllers
[SwaggerOperation("GetStatutsFormation")] [SwaggerOperation("GetStatutsFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(List<StatutFormationDTO>), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(List<StatutFormationDTO>), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
public virtual IActionResult GetStatutsFormation() public virtual async Task<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(..), ...
IEnumerable<StatutFormationDTO> statutFormations = formationService.GetStatutsFormation(); IEnumerable<StatutFormationDTO> statutFormations = await formationService.GetStatutsFormationAsync();
if (statutFormations == null) if (statutFormations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -378,10 +368,10 @@ namespace IO.Swagger.Controllers
[SwaggerOperation("GetTypesFormation")] [SwaggerOperation("GetTypesFormation")]
[SwaggerResponse(statusCode: 200, type: typeof(List<TypeFormationDTO>), description: "OK")] [SwaggerResponse(statusCode: 200, type: typeof(List<TypeFormationDTO>), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
public virtual IActionResult GetTypesFormation() public virtual async Task<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(..), ...
IEnumerable<TypeFormationDTO> typeFormations = formationService.GetTypesFormation(); IEnumerable<TypeFormationDTO> typeFormations = await formationService.GetTypesFormationAsync();
if (typeFormations == null) if (typeFormations == null)
{ {
ErreurDTO erreur = new ErreurDTO() ErreurDTO erreur = new ErreurDTO()
@ -410,29 +400,15 @@ namespace IO.Swagger.Controllers
[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 async Task<IActionResult> UpdateFormation([FromBody] FormationDTO body, [FromRoute][Required] long? idFormation)
{ {
FormationDTO formation = formationService.UpdateFormation(body); FormationDTO formation = await formationService.UpdateFormationAsync(idFormation, body);
if (formation == null) if (formation == null)
{ {
formation = formationService.AddFormation(body); formation = formationService.AddFormation(body);
return Created("", formation); return Created("", formation);
} }
return Ok(formation); return Ok(formation);
//switch (formationService.UpdateFormation(body))
//{
// case 0:
// return Ok();
// case 1:
// return StatusCode(201);
// case 2:
// return Forbid();
// default:
// return NotFound();
//}
} }
} }
} }

@ -66,6 +66,13 @@ namespace IO.Swagger.DTO
[DataMember(Name="nbPartitipants")] [DataMember(Name="nbPartitipants")]
public int? NbPartitipants { get; set; } public int? NbPartitipants { get; set; }
/// <summary>
/// Gets or Sets Origine
/// </summary>
[Required]
[DataMember(Name = "origine")]
public OrigineFormationDTO Origine { get; set; }
/// <summary> /// <summary>
/// Gets or Sets Mode /// Gets or Sets Mode
/// </summary> /// </summary>

@ -10,19 +10,31 @@ namespace EPAServeur.IServices
{ {
public interface IFormationService public interface IFormationService
{ {
FormationDTO GetFormationById(long? id); FormationDTO GetFormationById(long? idFormation);
Task<FormationDTO> GetFormationByIdAsync(long? idFormation);
IEnumerable<FormationDTO> GetFormations(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri); IEnumerable<FormationDTO> GetFormations(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
Task<IEnumerable<FormationDTO>> GetFormationsAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<FormationDTO> GetFormationAnnulees(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri); IEnumerable<FormationDTO> GetFormationAnnulees(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
Task<IEnumerable<FormationDTO>> GetFormationAnnuleesAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<FormationDTO> GetFormationRealisee(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri); IEnumerable<FormationDTO> GetFormationRealisee(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
Task<IEnumerable<FormationDTO>> GetFormationRealiseeAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<FormationDTO> GetProchainesFormation(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri); IEnumerable<FormationDTO> GetProchainesFormation(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
Task<IEnumerable<FormationDTO>> GetProchainesFormationAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri);
IEnumerable<ModeFormationDTO> GetModesFormation(); IEnumerable<ModeFormationDTO> GetModesFormation();
Task<IEnumerable<ModeFormationDTO>> GetModesFormationAsync();
IEnumerable<OrigineFormationDTO> GetOriginesFormation(); IEnumerable<OrigineFormationDTO> GetOriginesFormation();
Task<IEnumerable<OrigineFormationDTO>> GetOriginesFormationAsync();
IEnumerable<StatutFormationDTO> GetStatutsFormation(); IEnumerable<StatutFormationDTO> GetStatutsFormation();
Task<IEnumerable<StatutFormationDTO>> GetStatutsFormationAsync();
IEnumerable<TypeFormationDTO> GetTypesFormation(); IEnumerable<TypeFormationDTO> GetTypesFormation();
Task<IEnumerable<TypeFormationDTO>> GetTypesFormationAsync();
FormationDTO AddFormation(FormationDTO formationDTO); FormationDTO AddFormation(FormationDTO formationDTO);
FormationDTO UpdateFormation(FormationDTO formationDTO); Task<FormationDTO> AddFormationAsync(FormationDTO formationDTO);
bool DeleteFormationById(long? id); FormationDTO UpdateFormation(long? idFormation, FormationDTO formationDTO);
Task<FormationDTO> UpdateFormationAsync(long? idFormation, FormationDTO formationDTO);
bool DeleteFormationById(long? idFormation);
Task<bool> DeleteFormationByIdAsync(long? idFormation);
} }
} }

@ -6,6 +6,7 @@ using Microsoft.EntityFrameworkCore;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
namespace EPAServeur.Services namespace EPAServeur.Services
{ {
@ -35,15 +36,34 @@ namespace EPAServeur.Services
/// <summary> /// <summary>
/// Récupérer une formation par son id /// Récupérer une formation par son id
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="idFormation"></param>
/// <returns></returns> /// <returns></returns>
public FormationDTO GetFormationById(long? id) public FormationDTO GetFormationById(long? idFormation)
{ {
Formation formation = epContext.Formation.Include(formation => formation.Statut) Formation formation = epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation) .Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine) .Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation) .Include(formation => formation.TypeFormation)
.FirstOrDefault(formation => formation.Id == id); .FirstOrDefault(formation => formation.Id == idFormation);
if (formation == null)
return null;
return GetFormationDTO(formation);
}
/// <summary>
/// Récupérer une formation par son id de manière asynchrone
/// </summary>
/// <param name="idFormation"></param>
/// <returns></returns>
public async Task<FormationDTO> GetFormationByIdAsync(long? idFormation)
{
Formation formation = await epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation)
.FirstOrDefaultAsync(formation => formation.Id == idFormation);
if (formation == null) if (formation == null)
return null; return null;
@ -106,7 +126,69 @@ namespace EPAServeur.Services
if (formations == null) if (formations == null)
return new List<FormationDTO>(); return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs;
}
/// <summary>
/// Récupérer la liste des formations de manière asynchrone
/// </summary>
/// <param name="asc">Préciser si les données sont dans l&#x27;ordre (true) ou dans l&#x27;ordre inverse (false)</param>
/// <param name="numPage">Numéro de la page du tableau qui affiche les données</param>
/// <param name="parPAge">Nombre d&#x27;éléments affiché sur chaque page du tableau</param>
/// <param name="idAgence">id de l&#x27;agence à laquelle sont rattachées les données à récupérer</param>
/// <param name="texte">Texte permettant d&#x27;identifier l&#x27;objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s&#x27;effectue</param>
/// <returns></returns>
public async Task<IEnumerable<FormationDTO>> GetFormationsAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{
IEnumerable<Formation> formations;
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)
{
try
{
formations = await epContext.Formation
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation).Where(formation => formation.IdAgence == idAgence).ToListAsync();
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
formations = await epContext.Formation.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation).ToListAsync();
}
catch (Exception ex)
{
throw;
}
}
if (formations == null)
return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation)); formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
@ -150,7 +232,51 @@ namespace EPAServeur.Services
.Include(formation => formation.TypeFormation); .Include(formation => formation.TypeFormation);
if (formations == null) if (formations == null)
return new List<FormationDTO>(); return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs;
}
/// <summary>
/// Récupérer les formations annulées de manière asynchrone
/// </summary>
/// <param name="asc">Préciser si les données sont dans l&#x27;ordre (true) ou dans l&#x27;ordre inverse (false)</param>
/// <param name="numPage">Numéro de la page du tableau qui affiche les données</param>
/// <param name="parPAge">Nombre d&#x27;éléments affiché sur chaque page du tableau</param>
/// <param name="idAgence">id de l&#x27;agence à laquelle sont rattachées les données à récupérer</param>
/// <param name="texte">Texte permettant d&#x27;identifier l&#x27;objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s&#x27;effectue</param>
/// <returns></returns>
public async Task<IEnumerable<FormationDTO>> GetFormationAnnuleesAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{
IEnumerable<Formation> formations;
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 = await 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).ToListAsync();
else
formations = await epContext.Formation.Where(formation => formation.Statut.Id == 4)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation).ToListAsync();
if (formations == null)
return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation)); formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
@ -214,7 +340,71 @@ namespace EPAServeur.Services
if (formations == null) if (formations == null)
return new List<FormationDTO>(); return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs;
}
/// <summary>
/// Récupérer les formations réalisées de manière asynchrone
/// </summary>
/// <param name="asc">Préciser si les données sont dans l&#x27;ordre (true) ou dans l&#x27;ordre inverse (false)</param>
/// <param name="numPage">Numéro de la page du tableau qui affiche les données</param>
/// <param name="parPAge">Nombre d&#x27;éléments affiché sur chaque page du tableau</param>
/// <param name="idAgence">id de l&#x27;agence à laquelle sont rattachées les données à récupérer</param>
/// <param name="texte">Texte permettant d&#x27;identifier l&#x27;objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s&#x27;effectue</param>
/// <returns></returns>
public async Task<IEnumerable<FormationDTO>> GetFormationRealiseeAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{
IEnumerable<Formation> formations;
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)
{
try
{
formations = await 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).ToListAsync();
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
formations = await epContext.Formation.Where(formation => formation.Statut.Id == 3)
.Include(formation => formation.Statut)
.Include(formation => formation.ModeFormation)
.Include(formation => formation.Origine)
.Include(formation => formation.TypeFormation).ToListAsync();
}
catch (Exception ex)
{
throw;
}
}
if (formations == null)
return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation)); formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
@ -268,7 +458,61 @@ namespace EPAServeur.Services
} }
if (formations == null) if (formations == null)
return new List<FormationDTO>(); return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
return formationDTOs;
}
/// <summary>
/// Récupérer les formations plannifiées et replannifiées de manère asynchrone
/// </summary>
/// <param name="asc">Préciser si les données sont dans l&#x27;ordre (true) ou dans l&#x27;ordre inverse (false)</param>
/// <param name="numPage">Numéro de la page du tableau qui affiche les données</param>
/// <param name="parPAge">Nombre d&#x27;éléments affiché sur chaque page du tableau</param>
/// <param name="idAgence">id de l&#x27;agence à laquelle sont rattachées les données à récupérer</param>
/// <param name="texte">Texte permettant d&#x27;identifier l&#x27;objet rechercher</param>
/// <param name="tri">Colonne du tableau sur lequel le tri s&#x27;effectue</param>
/// <returns></returns>
public async Task<IEnumerable<FormationDTO>> GetProchainesFormationAsync(bool? asc, int? numPage, int? parPAge, int? idAgence, string texte, string tri)
{
IEnumerable<Formation> formations;
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)
try
{
formations = await 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).ToListAsync();
}
catch (Exception ex)
{
throw;
}
else
{
formations = await 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).ToListAsync();
}
if (formations == null)
return null;
formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation)); formationDTOs = formations.Where(formation => formation.Intitule.ToLower().Contains(texte)).Select(formation => GetFormationDTO(formation));
@ -292,6 +536,34 @@ namespace EPAServeur.Services
throw; throw;
} }
if (modeFormations == null)
return null;
modeFormationDTOs = modeFormations.Select(modeFormation => GetModeFormationDTO(modeFormation));
return modeFormationDTOs;
}
/// <summary>
/// Récupérer les modes de formation de manière asynchrone
/// </summary>
/// <returns></returns>
public async Task<IEnumerable<ModeFormationDTO>> GetModesFormationAsync()
{
IEnumerable<ModeFormation> modeFormations;
IEnumerable<ModeFormationDTO> modeFormationDTOs;
try
{
modeFormations = await epContext.ModeFormation.ToListAsync();
}
catch (Exception ex)
{
throw;
}
if (modeFormations == null)
return null;
modeFormationDTOs = modeFormations.Select(modeFormation => GetModeFormationDTO(modeFormation)); modeFormationDTOs = modeFormations.Select(modeFormation => GetModeFormationDTO(modeFormation));
return modeFormationDTOs; return modeFormationDTOs;
@ -315,6 +587,35 @@ namespace EPAServeur.Services
throw; throw;
} }
if (origineFormations == null)
return null;
origineFormationDTOs = origineFormations.Select(origineFormation => GetOrigineFormationDTO(origineFormation));
return origineFormationDTOs;
}
/// <summary>
/// Récupérer les origines de formation de manière asynchrone
/// </summary>
/// <returns></returns>
public async Task<IEnumerable<OrigineFormationDTO>> GetOriginesFormationAsync()
{
IEnumerable<OrigineFormation> origineFormations;
IEnumerable<OrigineFormationDTO> origineFormationDTOs;
try
{
origineFormations = await epContext.OrigineFormation.ToListAsync();
}
catch (Exception ex)
{
throw;
}
if (origineFormations == null)
return null;
origineFormationDTOs = origineFormations.Select(origineFormation => GetOrigineFormationDTO(origineFormation)); origineFormationDTOs = origineFormations.Select(origineFormation => GetOrigineFormationDTO(origineFormation));
return origineFormationDTOs; return origineFormationDTOs;
@ -339,6 +640,36 @@ namespace EPAServeur.Services
throw; throw;
} }
if (statutFormations == null)
return null;
statutFormationDTOs = statutFormations.Select(statutFormation => GetStatutFormationDTO(statutFormation));
return statutFormationDTOs;
}
/// <summary>
/// Récupérer les statuts de formation de manière asynchrone
/// </summary>
/// <returns></returns>
public async Task<IEnumerable<StatutFormationDTO>> GetStatutsFormationAsync()
{
IEnumerable<StatutFormation> statutFormations;
IEnumerable<StatutFormationDTO> statutFormationDTOs;
try
{
statutFormations = await epContext.StatutFormation.ToListAsync();
}
catch (Exception ex)
{
throw;
}
if (statutFormations == null)
return null;
statutFormationDTOs = statutFormations.Select(statutFormation => GetStatutFormationDTO(statutFormation)); statutFormationDTOs = statutFormations.Select(statutFormation => GetStatutFormationDTO(statutFormation));
return statutFormationDTOs; return statutFormationDTOs;
@ -362,6 +693,35 @@ namespace EPAServeur.Services
throw; throw;
} }
if (typeFormations == null)
return null;
typeFormationDTOs = typeFormations.Select(typeFormation => GetTypeFormationDTO(typeFormation));
return typeFormationDTOs;
}
/// <summary>
/// Récupérer les types de formation de manière asynchrone
/// </summary>
/// <returns></returns>
public async Task<IEnumerable<TypeFormationDTO>> GetTypesFormationAsync()
{
IEnumerable<TypeFormation> typeFormations;
IEnumerable<TypeFormationDTO> typeFormationDTOs;
try
{
typeFormations = await epContext.TypeFormation.ToListAsync();
}
catch (Exception ex)
{
throw;
}
if (typeFormations == null)
return null;
typeFormationDTOs = typeFormations.Select(typeFormation => GetTypeFormationDTO(typeFormation)); typeFormationDTOs = typeFormations.Select(typeFormation => GetTypeFormationDTO(typeFormation));
return typeFormationDTOs; return typeFormationDTOs;
@ -399,14 +759,52 @@ namespace EPAServeur.Services
return GetFormationDTO(formation); return GetFormationDTO(formation);
} }
/// <summary>
/// Ajouter une formation de manière asynchrone
/// </summary>
/// <param name="formationDTO"></param>
/// <returns></returns>
public async Task<FormationDTO> AddFormationAsync(FormationDTO formationDTO)
{
Formation formation = new Formation();
formation = SetFormation(formation, formationDTO);
if (formation.Statut != null)
{
epContext.StatutFormation.Attach(formation.Statut);
}
epContext.OrigineFormation.Attach(formation.Origine);
epContext.ModeFormation.Attach(formation.ModeFormation);
epContext.TypeFormation.Attach(formation.TypeFormation);
epContext.Add(formation);
try
{
await epContext.SaveChangesAsync();
}
catch (Exception ex)
{
throw;
}
return GetFormationDTO(formation);
}
/// <summary> /// <summary>
/// Modifier une formation /// Modifier une formation
/// </summary> /// </summary>
/// <param name="idFormation"></param>
/// <param name="formationDTO"></param> /// <param name="formationDTO"></param>
/// <returns></returns> /// <returns></returns>
public FormationDTO UpdateFormation(FormationDTO formationDTO) public FormationDTO UpdateFormation(long? idFormation, FormationDTO formationDTO)
{
if (formationDTO == null && !formationDTO.Id.HasValue && formationDTO.Id.Value != idFormation)
{ {
Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == formationDTO.Id); return null;
}
Formation formation = epContext.Formation.Find(idFormation);
if (formation == null) if (formation == null)
{ {
@ -426,14 +824,47 @@ namespace EPAServeur.Services
return GetFormationDTO(formation); return GetFormationDTO(formation);
} }
/// <summary>
/// Modifier une formation de manière asynchrone
/// </summary>
/// <param name="idFormation"></param>
/// <param name="formationDTO"></param>
/// <returns></returns>
public async Task<FormationDTO> UpdateFormationAsync(long? idFormation, FormationDTO formationDTO)
{
if (formationDTO == null && !formationDTO.Id.HasValue && formationDTO.Id.Value != idFormation)
{
return null;
}
Formation formation = await epContext.Formation.FindAsync(idFormation);
if (formation == null)
{
return null;
}
formation = SetFormation(formation, formationDTO);
try
{
await epContext.SaveChangesAsync();
}
catch (Exception ex)
{
throw;
}
return GetFormationDTO(formation);
}
/// <summary> /// <summary>
/// Supprimer une formation /// Supprimer une formation
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="idFormation"></param>
/// <returns></returns> /// <returns></returns>
public bool DeleteFormationById(long? id) public bool DeleteFormationById(long? idFormation)
{ {
Formation formation = epContext.Formation.FirstOrDefault(formation => formation.Id == id); Formation formation = epContext.Formation.Find(idFormation);
if (formation == null) if (formation == null)
return false; return false;
@ -452,6 +883,31 @@ namespace EPAServeur.Services
return true; return true;
} }
/// <summary>
/// Supprimer une formation de manière asynchrone
/// </summary>
/// <param name="idFormation"></param>
/// <returns></returns>
public async Task<bool> DeleteFormationByIdAsync(long? idFormation)
{
Formation formation = await epContext.Formation.FindAsync(idFormation);
if (formation == null)
return false;
epContext.Remove(formation);
try
{
await epContext.SaveChangesAsync();
}
catch (Exception)
{
throw;
}
return true;
}
#endregion #endregion
#region Méthodes Privée #region Méthodes Privée

Loading…
Cancel
Save