Ajout des logs dans l'api referent

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

@ -21,6 +21,9 @@ using Microsoft.AspNetCore.Authorization;
using IO.Swagger.Security;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using IO.Swagger.ClientCollaborateur;
using EPAServeur.Exceptions;
namespace IO.Swagger.Controllers
{
@ -31,10 +34,12 @@ namespace IO.Swagger.Controllers
public class ReferentsApiController : ControllerBase
{
private readonly IReferentService referentService;
private readonly ILogger<ReferentsApiController> logger;
public ReferentsApiController(IReferentService _referentService)
public ReferentsApiController(IReferentService _referentService, ILogger<ReferentsApiController> _logger)
{
referentService = _referentService;
logger = _logger;
}
/// <summary>
@ -55,16 +60,36 @@ namespace IO.Swagger.Controllers
[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)
{
ReferentDTO referentDTO = await referentService.GetReferentByIdAsync(idReferent);
if (referentDTO == null)
logger.LogInformation("Récupération du référent {idReferent}.", idReferent);
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()
{
Code = "404",
Message = "Le référent n'existe pas",
};
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);
}
@ -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)
{
//IEnumerable<ReferentDTO> referentDTOs = referentService.GetReferents(asc,numPage,parPAge,fonctions,idAgence,idBU,texte,tri);
return Ok();
return NoContent();
}
/// <summary>
@ -113,16 +138,36 @@ namespace IO.Swagger.Controllers
[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)
{
ReferentDTO referentDTO = await referentService.GetReferentActuelCollaborateurAsync(idCollaborateur);
if (referentDTO == null)
logger.LogInformation("Récupération du référent actuel du collaborateur {idCollaborateur}.", idCollaborateur);
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()
{
Code = "404",
Message = "Aucun référent pour le collaborateur",
Message = "Aucun référent actuel pour le collaborateur",
};
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);
}
@ -149,17 +194,49 @@ namespace IO.Swagger.Controllers
[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)
{
IEnumerable<ReferentDTO> referentDTO = await referentService.GetReferentsByCollaborateurAsync(asc,idCollaborateur,numPage,parPAge,texte,tri);
if (referentDTO.Count() == 0)
logger.LogInformation("Récupération de la liste des référents du collaborateur {idCollaborateur}.", idCollaborateur);
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()
{
Code = "404",
Message = "Aucun référent pour le collaborateur",
};
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.DTO;
using IO.Swagger.ModelCollaborateur;
@ -35,8 +36,9 @@ namespace EPAServeur.Services
public ReferentDTO GetReferentById(Guid? idReferent)
{
Referent referent = referentApi.ChercherRefId(idReferent);
if (referent == null)
return null;
throw new ReferentNotFoundException();
return GetReferentDTO(referent);
}
@ -49,8 +51,9 @@ namespace EPAServeur.Services
public async Task<ReferentDTO> GetReferentByIdAsync(Guid? idReferent)
{
Referent referent = await referentApi.ChercherRefIdAsync(idReferent);
if (referent == null)
return null;
throw new ReferentNotFoundException();
return GetReferentDTO(referent);
}
@ -65,7 +68,7 @@ namespace EPAServeur.Services
Referent referent = referentApi.ChercherRefActuelCollabId(idCollaborateur);
if (referent == null)
return null;
throw new ReferentNotFoundException();
return GetReferentDTO(referent);
}
@ -80,10 +83,11 @@ namespace EPAServeur.Services
Referent referent = await referentApi.ChercherRefActuelCollabIdAsync(idCollaborateur);
if (referent == null)
return null;
throw new ReferentNotFoundException();
return GetReferentDTO(referent);
}
/// <summary>
/// Récupère la liste des référents pour une agence
/// </summary>
@ -96,62 +100,63 @@ namespace EPAServeur.Services
/// <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();
throw new NotImplementedException();
//collaborateurs = collaborateurApi.ChercherCollab(ids);
if (texte == null)
texte = "";
else
texte = texte.ToLower();
////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();
int skip = (numPage.Value - 1) * parPAge.Value;
int take = parPAge.Value;
////collaborateurs = collaborateurApi.ChercherCollab(ids);
//if (texte == null)
// texte = "";
//else
// texte = texte.ToLower();
if (idBU != null)
{
//int skip = (numPage.Value - 1) * parPAge.Value;
//int take = parPAge.Value;
}
else
{
//if (idBU != null)
//{
}
//}
//else
//{
if (idAgence != null)
{
try
{
//}
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
//if (idAgence != null)
//{
// try
// {
}
catch (Exception ex)
{
throw;
}
}
// }
// 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));
//if (referents == null)
// return new List<ReferentDTO>();
return referentDTOs;
//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>
@ -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)
{
IEnumerable<Referent> referents = null ; // A changer
IEnumerable<ReferentDTO> referentDTOs = null; // A changer
throw new NotImplementedException();
if (texte == null)
texte = "";
else
texte = texte.ToLower();
//IEnumerable<Referent> referents = null ; // A changer
//IEnumerable<ReferentDTO> referentDTOs = null; // A changer
int skip = (numPage.Value - 1) * parPAge.Value;
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;
}
else
{
//if (idBU != null)
//{
}
//}
//else
//{
if (idAgence != null)
{
try
{
//}
}
catch (Exception ex)
{
throw;
}
}
else
{
try
{
//if (idAgence != null)
//{
// try
// {
}
catch (Exception ex)
{
throw;
}
}
// }
// 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));
//if (referents == null)
// return new List<ReferentDTO>();
return referentDTOs;
//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)
return new List<ReferentDTO>();
Collaborateur collaborateur = collaborateurApi.ChercherCollabId(idCollaborateur);
if (collaborateur == null)
throw new CollaborateurNotFoundException();
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));
return referentDTOs;
@ -281,8 +296,16 @@ namespace EPAServeur.Services
if (idCollaborateur == null)
return new List<ReferentDTO>();
Collaborateur collaborateur = await collaborateurApi.ChercherCollabIdAsync(idCollaborateur);
if (collaborateur == null)
throw new CollaborateurNotFoundException();
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));
return referentDTOs;

Loading…
Cancel
Save