Ajout des logs dans l'api referent

develop
jboinembalome 4 years ago
parent 83c5a51137
commit 9ed1697bf2
  1. 97
      Controllers/ReferentsApi.cs
  2. 201
      Services/ReferentService.cs

@ -21,6 +21,9 @@ using Microsoft.AspNetCore.Authorization;
using IO.Swagger.Security; using IO.Swagger.Security;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using IO.Swagger.ClientCollaborateur;
using EPAServeur.Exceptions;
namespace IO.Swagger.Controllers namespace IO.Swagger.Controllers
{ {
@ -31,10 +34,12 @@ namespace IO.Swagger.Controllers
public class ReferentsApiController : ControllerBase public class ReferentsApiController : ControllerBase
{ {
private readonly IReferentService referentService; private readonly IReferentService referentService;
private readonly ILogger<ReferentsApiController> logger;
public ReferentsApiController(IReferentService _referentService) public ReferentsApiController(IReferentService _referentService, ILogger<ReferentsApiController> _logger)
{ {
referentService = _referentService; referentService = _referentService;
logger = _logger;
} }
/// <summary> /// <summary>
@ -55,16 +60,36 @@ 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 async Task<IActionResult> GetReferentById([FromRoute][Required]Guid? idReferent) public virtual async Task<IActionResult> GetReferentById([FromRoute][Required]Guid? idReferent)
{ {
ReferentDTO referentDTO = await referentService.GetReferentByIdAsync(idReferent); logger.LogInformation("Récupération du référent {idReferent}.", idReferent);
if (referentDTO == null)
ReferentDTO referentDTO = null;
try
{
referentDTO = await referentService.GetReferentByIdAsync(idReferent);
}
catch (ApiException)
{
logger.LogError("Une erreur est survenue lors de la communication avec le service Collaborateur pour récupérer le référent par son id {idReferent}.", idReferent);
}
catch (ReferentNotFoundException)
{ {
logger.LogError("Le référent {idReferent} est introuvable.", idReferent);
ErreurDTO erreurDTO = new ErreurDTO() ErreurDTO erreurDTO = new ErreurDTO()
{ {
Code = "404", Code = "404",
Message = "Le référent n'existe pas", Message = "Le référent n'existe pas",
}; };
return NotFound(erreurDTO); return NotFound(erreurDTO);
} }
catch (Exception)
{
logger.LogError("Une erreur inconnue est survenue lors de la récupération du référent {idReferent}.", idReferent);
}
logger.LogInformation("Référent {idReferent} récupéré.", idReferent);
return Ok(referentDTO); return Ok(referentDTO);
} }
@ -92,7 +117,7 @@ namespace IO.Swagger.Controllers
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) 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)
{ {
//IEnumerable<ReferentDTO> referentDTOs = referentService.GetReferents(asc,numPage,parPAge,fonctions,idAgence,idBU,texte,tri); //IEnumerable<ReferentDTO> referentDTOs = referentService.GetReferents(asc,numPage,parPAge,fonctions,idAgence,idBU,texte,tri);
return Ok(); return NoContent();
} }
/// <summary> /// <summary>
@ -113,16 +138,36 @@ 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 async Task<IActionResult> GetReferentActuelCollaborateur([FromRoute][Required] Guid? idCollaborateur) public virtual async Task<IActionResult> GetReferentActuelCollaborateur([FromRoute][Required] Guid? idCollaborateur)
{ {
ReferentDTO referentDTO = await referentService.GetReferentActuelCollaborateurAsync(idCollaborateur); logger.LogInformation("Récupération du référent actuel du collaborateur {idCollaborateur}.", idCollaborateur);
if (referentDTO == null)
ReferentDTO referentDTO = null;
try
{
referentDTO = await referentService.GetReferentActuelCollaborateurAsync(idCollaborateur);
}
catch (ApiException)
{ {
logger.LogError("Une erreur est survenue lors de la communication avec le service Collaborateur pour récupérer le référent actuel du collaborateur {idCollaborateur}.", idCollaborateur);
}
catch (ReferentNotFoundException)
{
logger.LogError("Le référent actuel du collaborateur {idCollaborateur} est introuvable.", idCollaborateur);
ErreurDTO erreurDTO = new ErreurDTO() ErreurDTO erreurDTO = new ErreurDTO()
{ {
Code = "404", Code = "404",
Message = "Aucun référent pour le collaborateur", Message = "Aucun référent actuel pour le collaborateur",
}; };
return NotFound(erreurDTO); return NotFound(erreurDTO);
} }
catch (Exception)
{
logger.LogError("Une erreur inconnue est survenue lors de la récupération du référent actuel du collaborateur {idCollaborateur}.", idCollaborateur);
}
logger.LogInformation("Référent actuel du collaborateur {idCollaborateur} récupéré.", idCollaborateur);
return Ok(referentDTO); return Ok(referentDTO);
} }
@ -149,17 +194,49 @@ 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 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) 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 = await referentService.GetReferentsByCollaborateurAsync(asc,idCollaborateur,numPage,parPAge,texte,tri); logger.LogInformation("Récupération de la liste des référents du collaborateur {idCollaborateur}.", idCollaborateur);
if (referentDTO.Count() == 0)
IEnumerable<ReferentDTO> referentDTOs = null;
try
{
referentDTOs = await referentService.GetReferentsByCollaborateurAsync(asc, idCollaborateur, numPage, parPAge, texte, tri);
}
catch (ApiException)
{
logger.LogError("Une erreur est survenue lors de la communication avec le service collaborateur lors de la récupération de la liste des référents du collaborateur {idReferent}.", idCollaborateur);
}
catch (CollaborateurNotFoundException)
{
ErreurDTO erreurDTO = new ErreurDTO()
{
Code = "404",
Message = "Le collaborateur n'existe pas",
};
return NotFound(erreurDTO);
}
catch (Exception)
{
logger.LogError("Une erreur inconnue est survenue lors de la récupération des référents du collaborateur {idCollaborateur}.", idCollaborateur);
}
if (referentDTOs.Count() == 0)
{ {
logger.LogInformation("Aucun référent pour le collaborateur {idCollaborateur}.", idCollaborateur);
ErreurDTO erreurDTO = new ErreurDTO() ErreurDTO erreurDTO = new ErreurDTO()
{ {
Code = "404", Code = "404",
Message = "Aucun référent pour le collaborateur", Message = "Aucun référent pour le collaborateur",
}; };
return NotFound(erreurDTO); return NotFound(erreurDTO);
} }
return Ok(referentDTO);
logger.LogInformation("Liste des référents du collaborateur {idCollaborateur} récupérée", idCollaborateur);
return Ok(referentDTOs);
} }
} }
} }

@ -1,4 +1,5 @@
using EPAServeur.IServices; using EPAServeur.Exceptions;
using EPAServeur.IServices;
using IO.Swagger.ApiCollaborateur; using IO.Swagger.ApiCollaborateur;
using IO.Swagger.DTO; using IO.Swagger.DTO;
using IO.Swagger.ModelCollaborateur; using IO.Swagger.ModelCollaborateur;
@ -35,8 +36,9 @@ namespace EPAServeur.Services
public ReferentDTO GetReferentById(Guid? idReferent) public ReferentDTO GetReferentById(Guid? idReferent)
{ {
Referent referent = referentApi.ChercherRefId(idReferent); Referent referent = referentApi.ChercherRefId(idReferent);
if (referent == null) if (referent == null)
return null; throw new ReferentNotFoundException();
return GetReferentDTO(referent); return GetReferentDTO(referent);
} }
@ -49,8 +51,9 @@ namespace EPAServeur.Services
public async Task<ReferentDTO> GetReferentByIdAsync(Guid? idReferent) public async Task<ReferentDTO> GetReferentByIdAsync(Guid? idReferent)
{ {
Referent referent = await referentApi.ChercherRefIdAsync(idReferent); Referent referent = await referentApi.ChercherRefIdAsync(idReferent);
if (referent == null) if (referent == null)
return null; throw new ReferentNotFoundException();
return GetReferentDTO(referent); return GetReferentDTO(referent);
} }
@ -65,7 +68,7 @@ namespace EPAServeur.Services
Referent referent = referentApi.ChercherRefActuelCollabId(idCollaborateur); Referent referent = referentApi.ChercherRefActuelCollabId(idCollaborateur);
if (referent == null) if (referent == null)
return null; throw new ReferentNotFoundException();
return GetReferentDTO(referent); return GetReferentDTO(referent);
} }
@ -80,10 +83,11 @@ namespace EPAServeur.Services
Referent referent = await referentApi.ChercherRefActuelCollabIdAsync(idCollaborateur); Referent referent = await referentApi.ChercherRefActuelCollabIdAsync(idCollaborateur);
if (referent == null) if (referent == null)
return null; throw new ReferentNotFoundException();
return GetReferentDTO(referent); return GetReferentDTO(referent);
} }
/// <summary> /// <summary>
/// Récupère la liste des référents pour une agence /// Récupère la liste des référents pour une agence
/// </summary> /// </summary>
@ -95,63 +99,64 @@ namespace EPAServeur.Services
/// <param name="idBU"></param> /// <param name="idBU"></param>
/// <param name="texte"></param> /// <param name="texte"></param>
/// <param name="tri"></param> /// <param name="tri"></param>
/// <returns></returns> /// <returns></returns>
public IEnumerable<ReferentDTO> GetReferents(bool? asc, int? numPage, int? parPAge, List<string> fonctions, long? idAgence, long? idBU, string texte, string tri) 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 throw new NotImplementedException();
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); ////IEnumerable<Collaborateur> collaborateurs; // A changer (Sera utilisé pour récupérer la liste des référents par fonction
if (texte == null) //IEnumerable<Referent> referents = null; // A changer
texte = ""; //IEnumerable<ReferentDTO> referentDTOs = null; // A changer
else ////List<Guid?> ids = fonctions.Select(guid => (Guid?)Guid.Parse(guid)).ToList();
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value; ////collaborateurs = collaborateurApi.ChercherCollab(ids);
int take = parPAge.Value; //if (texte == null)
// texte = "";
//else
// texte = texte.ToLower();
if (idBU != null) //int skip = (numPage.Value - 1) * parPAge.Value;
{ //int take = parPAge.Value;
} //if (idBU != null)
else //{
{
} //}
//else
//{
if (idAgence != null) //}
{
try
{
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
} //if (idAgence != null)
catch (Exception ex) //{
{ // try
throw; // {
}
}
// }
// catch (Exception ex)
// {
// throw;
// }
//}
//else
//{
// try
// {
if (referents == null) // }
return new List<ReferentDTO>(); // catch (Exception ex)
// {
// throw;
// }
//}
referentDTOs = referents.Where(referent => (referent.Nom + " " + referent.Prenom).ToLower().Contains(texte) || (referent.Prenom + " " + referent.Nom).ToLower().Contains(texte)).Select(referent => GetReferentDTO(referent));
return referentDTOs; //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> /// <summary>
@ -169,56 +174,58 @@ namespace EPAServeur.Services
public async Task<IEnumerable<ReferentDTO>> GetReferentsAsync(bool? asc, int? numPage, int? parPAge, List<string> fonctions, long? idAgence, long? idBU, string texte, string tri) 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 throw new NotImplementedException();
IEnumerable<ReferentDTO> referentDTOs = null; // A changer
if (texte == null) //IEnumerable<Referent> referents = null ; // A changer
texte = ""; //IEnumerable<ReferentDTO> referentDTOs = null; // A changer
else
texte = texte.ToLower();
int skip = (numPage.Value - 1) * parPAge.Value; //if (texte == null)
int take = parPAge.Value; // texte = "";
//else
// texte = texte.ToLower();
if (idBU != null) //int skip = (numPage.Value - 1) * parPAge.Value;
{ //int take = parPAge.Value;
} //if (idBU != null)
else //{
{
} //}
//else
//{
if (idAgence != null) //}
{
try
{
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
}
catch (Exception ex)
{
throw;
}
}
//if (idAgence != null)
//{
// try
// {
if (referents == null) // }
return new List<ReferentDTO>(); // catch (Exception ex)
// {
// throw;
// }
//}
//else
//{
// try
// {
referentDTOs = referents.Where(referent => (referent.Nom + " " + referent.Prenom).ToLower().Contains(texte) || (referent.Prenom + " " + referent.Nom).ToLower().Contains(texte)).Select(referent => GetReferentDTO(referent)); // }
// catch (Exception ex)
// {
// throw;
// }
//}
return referentDTOs;
//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;
} }
@ -248,8 +255,16 @@ namespace EPAServeur.Services
if (idCollaborateur == null) if (idCollaborateur == null)
return new List<ReferentDTO>(); return new List<ReferentDTO>();
Collaborateur collaborateur = collaborateurApi.ChercherCollabId(idCollaborateur);
if (collaborateur == null)
throw new CollaborateurNotFoundException();
referents = referentApi.ChercherRefCollabId(idCollaborateur); referents = referentApi.ChercherRefCollabId(idCollaborateur);
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)); referentDTOs = referents.Where(referent => (referent.Nom + " " + referent.Prenom).ToLower().Contains(texte) || (referent.Prenom + " " + referent.Nom).ToLower().Contains(texte)).Select(referent => GetReferentDTO(referent));
return referentDTOs; return referentDTOs;
@ -281,8 +296,16 @@ namespace EPAServeur.Services
if (idCollaborateur == null) if (idCollaborateur == null)
return new List<ReferentDTO>(); return new List<ReferentDTO>();
Collaborateur collaborateur = await collaborateurApi.ChercherCollabIdAsync(idCollaborateur);
if (collaborateur == null)
throw new CollaborateurNotFoundException();
referents = await referentApi.ChercherRefCollabIdAsync(idCollaborateur); referents = await referentApi.ChercherRefCollabIdAsync(idCollaborateur);
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)); referentDTOs = referents.Where(referent => (referent.Nom + " " + referent.Prenom).ToLower().Contains(texte) || (referent.Prenom + " " + referent.Nom).ToLower().Contains(texte)).Select(referent => GetReferentDTO(referent));
return referentDTOs; return referentDTOs;

Loading…
Cancel
Save