fix gestion unicité mail apside

pull/11/head
Clement FERRERE 3 years ago
parent e9cb320e4a
commit 826dc37379
  1. 23
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs
  2. 8
      Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs

@ -16,11 +16,22 @@ public class CollaborateursController : BaseController<CollaborateurApiDto>
[HttpPost] [HttpPost]
public override ActionResult<CollaborateurApiDto> Add(CollaborateurApiDto apiDto) public override ActionResult<CollaborateurApiDto> Add(CollaborateurApiDto apiDto)
{ {
CollaborateurApiDto? addedApiDto = Services.Add(apiDto); (CollaborateurApiDto?,int) addedApiDto = CollaborateursServices.Add(apiDto);
if (addedApiDto == null) if (addedApiDto.Item1 == null)
return Problem(); {
if(addedApiDto.Item2 == 1)
return Ok(addedApiDto); {
return Conflict("Erreur lors de la création du collaborateur : Le mail Apside renseigné est déjà utilisé pour un autre collaborateur.");
}
else if (addedApiDto.Item2 == 2)
{
return ValidationProblem("Erreur lors de la création du collaborateur : Erreur de validation de l'entité.");
}
else
return Problem("Erreur lors de la création du collaborateur : Problème interne");
}
return Ok(addedApiDto.Item1);
} }
[HttpPut("{id:int:min(1)}")] [HttpPut("{id:int:min(1)}")]
@ -29,7 +40,7 @@ public class CollaborateursController : BaseController<CollaborateurApiDto>
if (apiDto.Id != id) if (apiDto.Id != id)
return Unauthorized(); return Unauthorized();
CollaborateurApiDto? updatedApiDto = Services.Update(apiDto); CollaborateurApiDto? updatedApiDto = CollaborateursServices.Update(apiDto);
if (updatedApiDto == null) if (updatedApiDto == null)
return Problem(); return Problem();

@ -15,20 +15,20 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
CollaborateurRepository = collaborateurRepository; CollaborateurRepository = collaborateurRepository;
} }
public override CollaborateurApiDto? Add(CollaborateurApiDto apiDto) public (CollaborateurApiDto?,int) Add(CollaborateurApiDto apiDto)
{ {
if(GetAll().Where(collab => apiDto.ApsideMail == collab.ApsideMail).Any()) if(GetAll().Where(collab => apiDto.ApsideMail == collab.ApsideMail).Any())
{ {
return null; return (null,1);
} }
CollaborateurSqlDto sqlDto = apiDto.ToSql(); CollaborateurSqlDto sqlDto = apiDto.ToSql();
CollaborateurSqlDto? entitySqlValidation = CollaborateurRepository.Add(sqlDto); CollaborateurSqlDto? entitySqlValidation = CollaborateurRepository.Add(sqlDto);
if (entitySqlValidation == null) if (entitySqlValidation == null)
return null; return (null,2);
return entitySqlValidation.ToApi(); return (entitySqlValidation.ToApi(),0);
} }
public override CollaborateurApiDto? Update(CollaborateurApiDto apiDto) public override CollaborateurApiDto? Update(CollaborateurApiDto apiDto)

Loading…
Cancel
Save