Merge pull request 'delete_cascade_collabs à faire en 2ème' (#16) from delete_cascade_collabs into develop

Reviewed-on: Clement.Ferrere/Collaborateur_Epa_Back#16
pull/17/head^2
Clement.Ferrere 2 years ago
commit ccf9a24049
  1. 2
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BaseController.cs
  2. 11
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs
  3. 4
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/PeriodeEssaiMapper.cs
  4. 39
      Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs

@ -42,7 +42,7 @@ namespace espacecollab.backend.api.Controllers
} }
[HttpDelete("{id:int:min(1)}")] [HttpDelete("{id:int:min(1)}")]
public ActionResult Delete(uint id) public virtual ActionResult Delete(uint id)
{ {
bool isDeleted = Services.Delete(id); bool isDeleted = Services.Delete(id);
if (!isDeleted) if (!isDeleted)

@ -61,6 +61,17 @@ public class CollaborateursController : BaseController<CollaborateurApiDto>
return Ok(updatedApiDto); return Ok(updatedApiDto);
} }
[HttpDelete("{id:int:min(1)}")]
public override ActionResult Delete(uint id)
{
bool isDeleted = CollaborateursServices.Delete(id);
if (!isDeleted)
return Problem();
return Ok();
}
[HttpGet("businessunit/{businessUnitId:int:min(1)}")] [HttpGet("businessunit/{businessUnitId:int:min(1)}")]
public ActionResult<IEnumerable<CollaborateurApiDto>> GetCollaborateursByBusinessUnit(uint businessUnitId) public ActionResult<IEnumerable<CollaborateurApiDto>> GetCollaborateursByBusinessUnit(uint businessUnitId)
{ {

@ -10,13 +10,13 @@ public static class PeriodeEssaiMapper
{ {
return new PeriodeEssaiApiDto((uint)periodeEssaiSqlDto.Id, periodeEssaiSqlDto.StartingDate, return new PeriodeEssaiApiDto((uint)periodeEssaiSqlDto.Id, periodeEssaiSqlDto.StartingDate,
periodeEssaiSqlDto.PlannedEndingDate, periodeEssaiSqlDto.RealEndingDate, periodeEssaiSqlDto.Comment, periodeEssaiSqlDto.PlannedEndingDate, periodeEssaiSqlDto.RealEndingDate, periodeEssaiSqlDto.Comment,
(EnumIssueApi)periodeEssaiSqlDto.Issue, (uint)periodeEssaiSqlDto.CollaborateurId); (EnumIssueApi?)periodeEssaiSqlDto.Issue, (uint)periodeEssaiSqlDto.CollaborateurId);
} }
public static PeriodeEssaiSqlDto ToSql(this PeriodeEssaiApiDto periodeEssaiApiDto) public static PeriodeEssaiSqlDto ToSql(this PeriodeEssaiApiDto periodeEssaiApiDto)
{ {
return new PeriodeEssaiSqlDto((int)periodeEssaiApiDto.Id, periodeEssaiApiDto.StartingDate, return new PeriodeEssaiSqlDto((int)periodeEssaiApiDto.Id, periodeEssaiApiDto.StartingDate,
periodeEssaiApiDto.PlannedEndingDate, periodeEssaiApiDto.RealEndingDate, periodeEssaiApiDto.Comment, periodeEssaiApiDto.PlannedEndingDate, periodeEssaiApiDto.RealEndingDate, periodeEssaiApiDto.Comment,
(EnumIssueSql)periodeEssaiApiDto.Issue, (int)periodeEssaiApiDto.CollaborateurId); (EnumIssueSql?)periodeEssaiApiDto.Issue, (int)periodeEssaiApiDto.CollaborateurId);
} }
} }

@ -8,11 +8,15 @@ namespace espacecollab.backend.appservices;
public class CollaborateursService : GenericsServices<CollaborateurSqlDto, CollaborateurApiDto> public class CollaborateursService : GenericsServices<CollaborateurSqlDto, CollaborateurApiDto>
{ {
private ICollaborateurRepository CollaborateurRepository { get; } private ICollaborateurRepository CollaborateurRepository { get; }
private IPeriodeEssaiRepository PeriodeEssaiRepository { get; }
private IReferencementRepository ReferencementRepository { get; }
public CollaborateursService(ICollaborateurRepository collaborateurRepository) public CollaborateursService(ICollaborateurRepository collaborateurRepository, IPeriodeEssaiRepository periodeEssaiRepository, IReferencementRepository referencementRepository)
: base(collaborateurRepository, CollaborateurMapper.ToApi, CollaborateurMapper.ToSql) : base(collaborateurRepository, CollaborateurMapper.ToApi, CollaborateurMapper.ToSql)
{ {
CollaborateurRepository = collaborateurRepository; CollaborateurRepository = collaborateurRepository;
PeriodeEssaiRepository = periodeEssaiRepository;
ReferencementRepository = referencementRepository;
} }
public (CollaborateurApiDto?,int) Add(CollaborateurApiDto apiDto) public (CollaborateurApiDto?,int) Add(CollaborateurApiDto apiDto)
@ -41,8 +45,6 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
return (null,2); return (null,2);
} }
CollaborateurSqlDto sqlDto = apiDto.ToSql(); CollaborateurSqlDto sqlDto = apiDto.ToSql();
CollaborateurSqlDto? sqlDtoValidation = CollaborateurRepository.Update(sqlDto); CollaborateurSqlDto? sqlDtoValidation = CollaborateurRepository.Update(sqlDto);
@ -52,6 +54,37 @@ public class CollaborateursService : GenericsServices<CollaborateurSqlDto, Colla
return (sqlDtoValidation.ToApi(),0); return (sqlDtoValidation.ToApi(),0);
} }
public new bool Delete(uint apiDtoId)
{
IEnumerable<ReferencementSqlDto>? referencements = ReferencementRepository.GetAll();
IEnumerable<PeriodeEssaiSqlDto>? periodeEssais = PeriodeEssaiRepository.GetAll();
if (referencements.Any())
{
foreach (var referencement in referencements)
{
if (referencement.ReferredId == apiDtoId || referencement.ReferrerId == apiDtoId)
{
ReferencementRepository.Delete(referencement.Id);
}
}
}
if (periodeEssais.Any())
{
foreach (var periodeEssai in periodeEssais)
{
if (periodeEssai.CollaborateurId== apiDtoId)
{
PeriodeEssaiRepository.Delete(periodeEssai.Id);
}
}
}
return CollaborateurRepository.Delete((int)apiDtoId);
}
public IEnumerable<CollaborateurApiDto> GetCollaborateursByBusinessUnit(uint businessUnitId) public IEnumerable<CollaborateurApiDto> GetCollaborateursByBusinessUnit(uint businessUnitId)
{ {
return CollaborateurRepository.GetCollaborateursByBusinessUnit((int)businessUnitId).Select(collaborateurSql => collaborateurSql.ToApi()); return CollaborateurRepository.GetCollaborateursByBusinessUnit((int)businessUnitId).Select(collaborateurSql => collaborateurSql.ToApi());

Loading…
Cancel
Save