diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs index a249fe4..0d8b17e 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs @@ -44,9 +44,9 @@ namespace espacecollab.backend.api.Controllers } [HttpDelete("delete")] - public ActionResult DeleteCollaborateur(CollaborateurApiDto collaborateurApi) //TODO passé uniquement l'ID + public ActionResult DeleteCollaborateur(int collaborateurId) { - bool isCollaborateurDeleted = CollaborateursServices.Delete(collaborateurApi); + bool isCollaborateurDeleted = CollaborateursServices.Delete(collaborateurId); if (!isCollaborateurDeleted) return Problem(); diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs index d974894..a181292 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs @@ -1,6 +1,8 @@ -namespace espacecollab.backend.appservices.dtos +using espacecollab.backend.infrastructure.sql.dtos.Interfaces; + +namespace espacecollab.backend.appservices.dtos { - public class CollaborateurApiDto + public class CollaborateurApiDto : IGenericIdApiDto { public int Id { get; set; } public string Name { get; set; } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdSqlDto.cs new file mode 100644 index 0000000..f15ba9c --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdSqlDto.cs @@ -0,0 +1,7 @@ +namespace espacecollab.backend.infrastructure.sql.dtos.Interfaces +{ + public interface IGenericIdApiDto + { + public int Id { get; set; } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs index 9255799..b0b1940 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs @@ -15,33 +15,6 @@ namespace espacecollab.backend.appservices CollaborateurRepository = collaborateurRepository; } - public CollaborateurApiDto? AddCollaborateur(CollaborateurApiDto collaborateurApi) - { - CollaborateurSqlDto collaborateurSql = collaborateurApi.ToSql(); - if (collaborateurSql == null) - return null; - CollaborateurRepository.Add(collaborateurSql); - return collaborateurApi; - } - - public CollaborateurApiDto? DeleteCollaborateur(CollaborateurApiDto collaborateurApi) - { - CollaborateurSqlDto collaborateurSql = collaborateurApi.ToSql(); - if (collaborateurSql == null) - return null; - CollaborateurRepository.Delete(collaborateurSql); - return collaborateurApi; - } - - public CollaborateurApiDto? UpdateCollaborateur(CollaborateurApiDto collaborateurApi) - { - CollaborateurSqlDto collaborateurSql = collaborateurApi.ToSql(); - if (collaborateurSql == null) - return null; - CollaborateurRepository.Update(collaborateurSql); - return collaborateurApi; - } - public IEnumerable GetCollaborateursByBusinessUnit(int businessUnitId) { return CollaborateurRepository.GetCollaborateursByBusinessUnit(businessUnitId).Select(collaborateurSql => collaborateurSql.ToApi()); diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs index f4e0bcb..af77b56 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs @@ -4,7 +4,7 @@ using espacecollab.backend.infrastructure.sql.dtos.Interfaces; namespace espacecollab.backend.appservices { public abstract class GenericsServices where T : class, IGenericIdSqlDto - where TO : class + where TO : class, IGenericIdApiDto { Func MapperToApiDto { get; } Func MapperToSqlDto { get; } @@ -44,9 +44,11 @@ namespace espacecollab.backend.appservices } public TO? Update(TO apiDto) - { - //TODO tester l'existence de l'apiDto dans le SQL - + { + if(GetById(apiDto.Id)==null) + { + return null; + } T sqlDto = MapperToSqlDto(apiDto); T? sqlDtoValidation = GenericRepository.Update(sqlDto); @@ -56,11 +58,9 @@ namespace espacecollab.backend.appservices return MapperToApiDto(sqlDtoValidation); } - public bool Delete(TO apiDto) + public bool Delete(int apiDtoId) { - T sqlDto = MapperToSqlDto(apiDto); - - return GenericRepository.Delete(sqlDto); + return GenericRepository.Delete(apiDtoId); } } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs index 6117796..f155d9c 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs @@ -17,8 +17,10 @@ namespace espacecollab.backend.infrastructure.fake return entity; } - public virtual bool Delete(T entity) + public virtual bool Delete(int entityId) { + T? entity = GetById(entityId); + if (entity == null) return false; return Context.Remove(entity); } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IGenericRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IGenericRepository.cs index 87b225d..a071958 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IGenericRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IGenericRepository.cs @@ -5,7 +5,7 @@ namespace espacecollab.backend.infrastructure.interfaces public interface IGenericRepository where T : class, IGenericIdSqlDto { T? Add(T entity); - bool Delete(T entity); + bool Delete(int entityId); IEnumerable GetAll(); T? GetById(int id); T? Update(T entity); diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IReferencementRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IReferencementRepository.cs index 0e9c81a..4bb453e 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IReferencementRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IReferencementRepository.cs @@ -6,7 +6,5 @@ namespace espacecollab.backend.infrastructure.interfaces { IList? GetReferrersByCollaborateurId(int collaborateurId); IList? GetReferrersByCollaborateurApsideMail(string apsideMail); - - //TODO Voir les attentes concernant "le référent ayant le plus suivi depuis une date" } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs index bee38ec..20291de 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs @@ -17,8 +17,10 @@ namespace espacecollab.backend.infrastructure.sql.Repository return Context.Set().Add(entity) as T; } - public virtual bool Delete(T entity) + public virtual bool Delete(int entityId) { + T? entity = GetById(entityId); + if (entity == null) return false; Context.Set().Remove(entity); return Context.SaveChanges() == 1;