diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BaseController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BaseController.cs index 0ec5b6c..9fcc857 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BaseController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BaseController.cs @@ -51,7 +51,7 @@ namespace espacecollab.backend.api.Controllers return Ok(); } - [HttpPut("{collaborateurId:int:min(1)}")] + [HttpPut("{id:int:min(1)}")] public ActionResult Update(uint id, TO apiDto) { if (apiDto.Id != id) diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitController.cs new file mode 100644 index 0000000..9606c8b --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitController.cs @@ -0,0 +1,12 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.api.Controllers +{ + public class BusinessUnitController : BaseController + { + public BusinessUnitController(BusinessUnitService businessUnitService) : base(businessUnitService) + { + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs index d23bff9..13cc349 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs @@ -8,9 +8,9 @@ namespace espacecollab.backend.api.Controllers //[ApiController] public class CollaborateursController : BaseController { - private CollaborateursServices CollaborateursServices { get; } + private CollaborateursService CollaborateursServices { get; } - public CollaborateursController(CollaborateursServices collaborateursServices) : base(collaborateursServices) + public CollaborateursController(CollaborateursService collaborateursServices) : base(collaborateursServices) { CollaborateursServices = collaborateursServices; } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs index 603e14a..412442c 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs @@ -11,19 +11,22 @@ internal static class Register { public static void InjectDependencies(IServiceCollection services, SqlOption contextOptions) { - services.AddScoped(); + services.AddScoped(); services.AddScoped(); + services.AddScoped(); if (contextOptions.LoadFake) { services.AddSingleton(); services.AddSingleton(); + services.AddSingleton(); } else { services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); } } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs new file mode 100644 index 0000000..ef1077c --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs @@ -0,0 +1,9 @@ +using espacecollab.backend.appservices.dtos.Interfaces; + +namespace espacecollab.backend.infrastructure.sql.dtos +{ + public record BusinessUnitApiDto(uint Id, string Name, uint AgenceId) : IGenericIdApiDto + { + public uint Id { get; set; } = Id; + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs index ceb58c5..13717bc 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs @@ -1,4 +1,5 @@ using espacecollab.backend.appservices.dtos.Interfaces; +using espacecollab.backend.appservices.dtos.Values; namespace espacecollab.backend.appservices.dtos { diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdApiDto.cs similarity index 100% rename from Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdSqlDto.cs rename to Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Interfaces/IGenericIdApiDto.cs diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs new file mode 100644 index 0000000..983558a --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs @@ -0,0 +1,15 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices.dtos.Mappers; + +public static class BusinessUnitMapper +{ + public static BusinessUnitApiDto ToApi(this BusinessUnitSqlDto businessUnitSqlDto) + { + return new BusinessUnitApiDto((uint)businessUnitSqlDto.Id, businessUnitSqlDto.Name, (uint)businessUnitSqlDto.AgenceId); + } + public static BusinessUnitSqlDto ToSql(this BusinessUnitApiDto businessUnitApiDto) + { + return new BusinessUnitSqlDto((int)businessUnitApiDto.Id, businessUnitApiDto.Name, (int)businessUnitApiDto.AgenceId); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs index ff142fc..9ec076a 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs @@ -1,4 +1,5 @@ -using espacecollab.backend.infrastructure.sql.dtos.Values; +using espacecollab.backend.appservices.dtos.Values; +using espacecollab.backend.infrastructure.sql.dtos.Values; namespace espacecollab.backend.appservices.dtos.Mappers { diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs index 85a6e5d..9f7e1ca 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs @@ -1,4 +1,5 @@ -using espacecollab.backend.infrastructure.sql.dtos.Values; +using espacecollab.backend.appservices.dtos.Values; +using espacecollab.backend.infrastructure.sql.dtos.Values; namespace espacecollab.backend.appservices.dtos.Mappers { diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumGenreApi.cs similarity index 61% rename from Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs rename to Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumGenreApi.cs index 9414526..ea0429a 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumGenreApi.cs @@ -1,4 +1,4 @@ -namespace espacecollab.backend.appservices.dtos +namespace espacecollab.backend.appservices.dtos.Values { public enum EnumGenreApi { diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumStatutApi.cs similarity index 65% rename from Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs rename to Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumStatutApi.cs index 0cad417..d95441f 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumStatutApi.cs @@ -1,4 +1,4 @@ -namespace espacecollab.backend.appservices.dtos +namespace espacecollab.backend.appservices.dtos.Values { public enum EnumStatutApi { diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs new file mode 100644 index 0000000..16bb915 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs @@ -0,0 +1,13 @@ +using espacecollab.backend.appservices.dtos.Mappers; +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices; + +public class BusinessUnitService : GenericsServices +{ + public BusinessUnitService(IBusinessUnitRepository genericRepository) + : base(genericRepository, BusinessUnitMapper.ToApi, BusinessUnitMapper.ToSql) + { + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs similarity index 87% rename from Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs rename to Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs index f9039c7..18c2ba7 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs @@ -5,11 +5,11 @@ using espacecollab.backend.infrastructure.sql.dtos; namespace espacecollab.backend.appservices { - public class CollaborateursServices : GenericsServices + public class CollaborateursService : GenericsServices { private ICollaborateurRepository CollaborateurRepository { get; } - public CollaborateursServices(ICollaborateurRepository collaborateurRepository) + public CollaborateursService(ICollaborateurRepository collaborateurRepository) : base(collaborateurRepository, CollaborateurMapper.ToApi, CollaborateurMapper.ToSql) { CollaborateurRepository = collaborateurRepository; diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs index d1c65c2..7798d35 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs @@ -48,9 +48,8 @@ namespace espacecollab.backend.appservices public TO? Update(TO apiDto) { if (GetById(apiDto.Id) == null) - { return null; - } + T sqlDto = MapperToSqlDto(apiDto); T? sqlDtoValidation = GenericRepository.Update(sqlDto); diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs new file mode 100644 index 0000000..e9d99ed --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs @@ -0,0 +1,18 @@ +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.fake +{ + public class FakeBusinessUnitRepository : GenericFakeRepository, IBusinessUnitRepository + { + public FakeBusinessUnitRepository() + { + Context = new List + { + new(1, "BU 1", 1), + + new(2, "BU 2", 1) + }; + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs index f155d9c..08dae61 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/GenericFakeRepository.cs @@ -5,7 +5,7 @@ namespace espacecollab.backend.infrastructure.fake { public class GenericFakeRepository : IGenericRepository where T : class, IGenericIdSqlDto { - protected List Context { get; set; } + protected List Context { get; set; } = new(); public virtual T? Add(T entity) { diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs new file mode 100644 index 0000000..eebf77b --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs @@ -0,0 +1,11 @@ +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.sql.Repository; + +public class BusinessUnitSqlRepository : GenericSqlRepository, IBusinessUnitRepository +{ + public BusinessUnitSqlRepository(MainDbContext context) : base(context) + { + } +} \ No newline at end of file