Ajout des méthodes asynchrones

develop
jboinembalome 4 years ago
parent 7221f86417
commit 2f716d22dd
  1. 29
      Controllers/ReferentsApi.cs
  2. 4
      IServices/IReferentService.cs
  3. 183
      Services/ReferentService.cs

@ -20,6 +20,7 @@ using System.Net;
using Microsoft.AspNetCore.Authorization;
using IO.Swagger.Security;
using System.Linq;
using System.Threading.Tasks;
namespace IO.Swagger.Controllers
{
@ -52,9 +53,9 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 200, type: typeof(ReferentDTO), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n'a pas été trouvée")]
public virtual IActionResult GetReferentById([FromRoute][Required]Guid? idReferent)
public virtual async Task<IActionResult> GetReferentById([FromRoute][Required]Guid? idReferent)
{
ReferentDTO referentDTO = referentService.GetReferentById(idReferent);
ReferentDTO referentDTO = await referentService.GetReferentByIdAsync(idReferent);
if (referentDTO == null)
{
ErreurDTO erreurDTO = new ErreurDTO()
@ -89,19 +90,9 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 200, type: typeof(List<ReferentDTO>), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
public virtual IActionResult GetReferents([FromQuery][Required()]bool? asc, [FromQuery][Required()]int? numPage, [FromQuery][Required()]int? parPAge, [FromQuery]List<string> fonctions, [FromQuery]long? idAgence, [FromQuery]long? idBU, [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(..), ...
// return StatusCode(200, default(List<ReferentDTO>));
//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));
string exampleJson = null;
exampleJson = "[ {\n \"mailApside\" : \"\",\n \"id\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"nom\" : \"nom\",\n \"prenom\" : \"prenom\",\n \"collaborateurs\" : [ null, null ]\n}, {\n \"mailApside\" : \"\",\n \"id\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"nom\" : \"nom\",\n \"prenom\" : \"prenom\",\n \"collaborateurs\" : [ null, null ]\n} ]";
var example = exampleJson != null
? JsonConvert.DeserializeObject<List<ReferentDTO>>(exampleJson)
: default(List<ReferentDTO>); //TODO: Change the data returned
return new ObjectResult(example);
{
//IEnumerable<ReferentDTO> referentDTOs = referentService.GetReferents(asc,numPage,parPAge,fonctions,idAgence,idBU,texte,tri);
return Ok();
}
/// <summary>
@ -120,9 +111,9 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 200, type: typeof(ReferentDTO), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")]
public virtual IActionResult GetReferentActuelCollaborateur([FromRoute][Required] Guid? idCollaborateur)
public virtual async Task<IActionResult> GetReferentActuelCollaborateur([FromRoute][Required] Guid? idCollaborateur)
{
ReferentDTO referentDTO = referentService.GetReferentActuelCollaborateur(idCollaborateur);
ReferentDTO referentDTO = await referentService.GetReferentActuelCollaborateurAsync(idCollaborateur);
if (referentDTO == null)
{
ErreurDTO erreurDTO = new ErreurDTO()
@ -156,9 +147,9 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 200, type: typeof(List<ReferentDTO>), description: "OK")]
[SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "Acces interdit")]
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "Ressource n&#x27;a pas été trouvée")]
public virtual IActionResult GetReferentsByCollaborateur([FromQuery][Required()] bool? asc, [FromRoute][Required] Guid? idCollaborateur, [FromQuery][Required()] int? numPage, [FromQuery][Required()] int? parPAge, [FromQuery] string texte, [FromQuery] string tri)
public virtual async Task<IActionResult> GetReferentsByCollaborateur([FromQuery][Required()] bool? asc, [FromRoute][Required] Guid? idCollaborateur, [FromQuery][Required()] int? numPage, [FromQuery][Required()] int? parPAge, [FromQuery] string texte, [FromQuery] string tri)
{
IEnumerable<ReferentDTO> referentDTO = referentService.GetReferentsByCollaborateur(asc,idCollaborateur,numPage,parPAge,texte,tri);
IEnumerable<ReferentDTO> referentDTO = await referentService.GetReferentsByCollaborateurAsync(asc,idCollaborateur,numPage,parPAge,texte,tri);
if (referentDTO.Count() == 0)
{
ErreurDTO erreurDTO = new ErreurDTO()

@ -11,10 +11,14 @@ namespace EPAServeur.IServices
public interface IReferentService
{
ReferentDTO GetReferentById(Guid? idReferent);
Task<ReferentDTO> GetReferentByIdAsync(Guid? idReferent);
ReferentDTO GetReferentActuelCollaborateur(Guid? idCollaborateur);
Task<ReferentDTO> GetReferentActuelCollaborateurAsync(Guid? idCollaborateur);
IEnumerable<ReferentDTO> GetReferents(bool? asc, int? numPage, int? parPAge, List<string> fonctions, long? idAgence, long? idBU, string texte, string tri);
Task<IEnumerable<ReferentDTO>> GetReferentsAsync(bool? asc, int? numPage, int? parPAge, List<string> fonctions, long? idAgence, long? idBU, string texte, string tri);
IEnumerable<ReferentDTO> GetReferentsByCollaborateur(bool? asc, Guid? idCollaborateur, int? numPage, int? parPAge, string texte, string tri);
Task<IEnumerable<ReferentDTO>> GetReferentsByCollaborateurAsync(bool? asc, Guid? idCollaborateur, int? numPage, int? parPAge, string texte, string tri);
}
}

@ -5,6 +5,7 @@ using IO.Swagger.ModelCollaborateur;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace EPAServeur.Services
{
@ -12,13 +13,14 @@ namespace EPAServeur.Services
{
#region Variables
private readonly IReferentApi referentApi;
private readonly ICollaborateurApi collaborateurApi;
#endregion
#region Contructeurs
public ReferentService(IReferentApi _referentApi)
public ReferentService(IReferentApi _referentApi, ICollaborateurApi _collaborateurApi)
{
referentApi = _referentApi;
collaborateurApi = _collaborateurApi;
}
#endregion
@ -39,6 +41,20 @@ namespace EPAServeur.Services
return GetReferentDTO(referent);
}
/// <summary>
/// Récupère un référent par son id de manière asynchrone
/// </summary>
/// <param name="idReferent"></param>
/// <returns></returns>
public async Task<ReferentDTO> GetReferentByIdAsync(Guid? idReferent)
{
Referent referent = await referentApi.ChercherRefIdAsync(idReferent);
if (referent == null)
return null;
return GetReferentDTO(referent);
}
/// <summary>
/// Récupère un référent en fonction d'un collaborateur
/// </summary>
@ -54,19 +70,104 @@ namespace EPAServeur.Services
return GetReferentDTO(referent);
}
/// <summary>
/// Récupère la liste des référents pour une agence
/// </summary>
/// <param name="asc"></param>
/// <param name="numPage"></param>
/// <param name="parPAge"></param>
/// <param name="fonctions"></param>
/// <param name="idAgence"></param>
/// <param name="idBU"></param>
/// <param name="texte"></param>
/// <param name="tri"></param>
/// <returns></returns>
/// <summary>
/// Récupère un référent en fonction d'un collaborateur de manière asynchrone
/// </summary>
/// <param name="idCollaborateur"></param>
/// <returns></returns>
public async Task<ReferentDTO> GetReferentActuelCollaborateurAsync(Guid? idCollaborateur)
{
Referent referent = await referentApi.ChercherRefActuelCollabIdAsync(idCollaborateur);
if (referent == null)
return null;
return GetReferentDTO(referent);
}
/// <summary>
/// Récupère la liste des référents pour une agence
/// </summary>
/// <param name="asc"></param>
/// <param name="numPage"></param>
/// <param name="parPAge"></param>
/// <param name="fonctions"></param>
/// <param name="idAgence"></param>
/// <param name="idBU"></param>
/// <param name="texte"></param>
/// <param name="tri"></param>
/// <returns></returns>
public IEnumerable<ReferentDTO> GetReferents(bool? asc, int? numPage, int? parPAge, List<string> fonctions, long? idAgence, long? idBU, string texte, string tri)
{
//IEnumerable<Collaborateur> collaborateurs; // A changer (Sera utilisé pour récupérer la liste des référents par fonction
IEnumerable<Referent> referents = null; // A changer
IEnumerable<ReferentDTO> referentDTOs = null; // A changer
//List<Guid?> ids = fonctions.Select(guid => (Guid?)Guid.Parse(guid)).ToList();
//collaborateurs = collaborateurApi.ChercherCollab(ids);
if (texte == null)
texte = "";
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
if (idBU != null)
{
}
else
{
}
if (idAgence != null)
{
try
{
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
}
catch (Exception ex)
{
throw;
}
}
if (referents == null)
return new List<ReferentDTO>();
referentDTOs = referents.Where(referent => (referent.Nom + " " + referent.Prenom).ToLower().Contains(texte) || (referent.Prenom + " " + referent.Nom).ToLower().Contains(texte)).Select(referent => GetReferentDTO(referent));
return referentDTOs;
}
/// <summary>
/// Récupère la liste des référents pour une agence de manière asynchrone
/// </summary>
/// <param name="asc"></param>
/// <param name="numPage"></param>
/// <param name="parPAge"></param>
/// <param name="fonctions"></param>
/// <param name="idAgence"></param>
/// <param name="idBU"></param>
/// <param name="texte"></param>
/// <param name="tri"></param>
/// <returns></returns>
public async Task<IEnumerable<ReferentDTO>> GetReferentsAsync(bool? asc, int? numPage, int? parPAge, List<string> fonctions, long? idAgence, long? idBU, string texte, string tri)
{
IEnumerable<Referent> referents = null ; // A changer
IEnumerable<ReferentDTO> referentDTOs = null; // A changer
@ -120,6 +221,7 @@ namespace EPAServeur.Services
return referentDTOs;
}
/// <summary>
/// Récupère la liste des référents pour un collaborateur
/// </summary>
@ -152,6 +254,40 @@ namespace EPAServeur.Services
return referentDTOs;
}
/// <summary>
/// Récupère la liste des référents pour un collaborateur de manère asynchrone
/// </summary>
/// <param name="asc"></param>
/// <param name="idCollaborateur"></param>
/// <param name="numPage"></param>
/// <param name="parPAge"></param>
/// <param name="texte"></param>
/// <param name="tri"></param>
/// <returns></returns>
public async Task<IEnumerable<ReferentDTO>> GetReferentsByCollaborateurAsync(bool? asc, Guid? idCollaborateur, int? numPage, int? parPAge, string texte, string tri)
{
IEnumerable<Referent> referents;
IEnumerable<ReferentDTO> referentDTOs;
if (texte == null)
texte = "";
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
if (idCollaborateur == null)
return new List<ReferentDTO>();
referents = await referentApi.ChercherRefCollabIdAsync(idCollaborateur);
referentDTOs = referents.Where(referent => (referent.Nom + " " + referent.Prenom).ToLower().Contains(texte) || (referent.Prenom + " " + referent.Nom).ToLower().Contains(texte)).Select(referent => GetReferentDTO(referent));
return referentDTOs;
}
#endregion
#region Méthodes Privées
@ -238,6 +374,25 @@ namespace EPAServeur.Services
};
return referentDTO;
}
/// <summary>
/// Récupère un objet ReferentDTO en fonction d'un objet Collaborateur
/// </summary>
/// <param name="referent"></param>
/// <returns></returns>
private ReferentDTO GetReferentDTO(Collaborateur collaborateur)
{
if (collaborateur == null)
return null;
ReferentDTO referentDTO = new ReferentDTO()
{
Id = collaborateur.Id,
Prenom = collaborateur.Prenom,
Nom = collaborateur.Nom,
MailApside = collaborateur.MailApside
};
return referentDTO;
}
#endregion
#region DTO to Object

Loading…
Cancel
Save