fix de la gestion de l'unicité des mails apside pour l'update d'un collaborateur

pull/11/head
Clement FERRERE 3 years ago
parent 826dc37379
commit 00d711b936
  1. 20
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs
  2. 10
      Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs

@ -40,9 +40,23 @@ public class CollaborateursController : BaseController<CollaborateurApiDto>
if (apiDto.Id != id) if (apiDto.Id != id)
return Unauthorized(); return Unauthorized();
CollaborateurApiDto? updatedApiDto = CollaborateursServices.Update(apiDto); (CollaborateurApiDto?, int) updatedApiDto = CollaborateursServices.Update(apiDto);
if (updatedApiDto == null) if (updatedApiDto.Item1 == null)
return Problem(); {
if (updatedApiDto.Item2 == 1)
{
return NoContent();
}
else if (updatedApiDto.Item2 == 2)
{
return Conflict("Erreur lors de la mise à jour du collaborateur : Le mail Apside renseigné est déjà utilisé pour un autre collaborateur.");
}
else if (updatedApiDto.Item2 == 3)
{
return ValidationProblem("Erreur lors de la mise à jour du collaborateur : Erreur de validation de l'entité.");
}
else return Problem();
}
return Ok(updatedApiDto); return Ok(updatedApiDto);

@ -31,14 +31,14 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
return (entitySqlValidation.ToApi(),0); return (entitySqlValidation.ToApi(),0);
} }
public override CollaborateurApiDto? Update(CollaborateurApiDto apiDto) public (CollaborateurApiDto?,int) Update(CollaborateurApiDto apiDto)
{ {
if (GetById(apiDto.Id) == null) if (GetById(apiDto.Id) == null)
return null; return (null,1);
if (GetAll().Where(collab => apiDto.ApsideMail == collab.ApsideMail && apiDto.Id != collab.Id).Any()) if (GetAll().Where(collab => apiDto.ApsideMail == collab.ApsideMail && apiDto.Id != collab.Id).Any())
{ {
return null; return (null,2);
} }
@ -47,9 +47,9 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
CollaborateurSqlDto? sqlDtoValidation = CollaborateurRepository.Update(sqlDto); CollaborateurSqlDto? sqlDtoValidation = CollaborateurRepository.Update(sqlDto);
if (sqlDtoValidation == null) if (sqlDtoValidation == null)
return null; return (null,3);
return sqlDtoValidation.ToApi(); return (sqlDtoValidation.ToApi(),0);
} }
public IEnumerable<CollaborateurApiDto> GetCollaborateursByBusinessUnit(uint businessUnitId) public IEnumerable<CollaborateurApiDto> GetCollaborateursByBusinessUnit(uint businessUnitId)

Loading…
Cancel
Save