diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs index 0882ab5..30521cd 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs @@ -1,11 +1,25 @@ using espacecollab.backend.appservices; using espacecollab.backend.appservices.dtos; +using Microsoft.AspNetCore.Mvc; namespace espacecollab.backend.api.Controllers; public class AgencesController : BaseController -{ - public AgencesController(AgenceService agenceService) : base(agenceService) +{ + private AgenceService AgenceServices { get; } + + public AgencesController(AgenceService agenceServices) : base(agenceServices) { + AgenceServices = agenceServices; + } + + [HttpGet("agences/{agenceId:int:min(1)}")] + public ActionResult> GetAgencesByBusinessUnit(uint businessUnitId) + { + IEnumerable agences = AgenceServices.GetAgencesByBusinessUnit(businessUnitId); + if (!agences.Any()) + return NotFound(); + + return Ok(agences); } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs index 9cba3bf..271f69a 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs @@ -8,21 +8,9 @@ namespace espacecollab.backend.api.Controllers //[ApiController] public class BusinessUnitsController : BaseController { - private BusinessUnitService BusinessUnitServices { get; } - public BusinessUnitsController(BusinessUnitService businessUnitServices) : base(businessUnitServices) { - BusinessUnitServices = businessUnitServices; } - [HttpGet("agences/{agenceId:int:min(1)}")] - public ActionResult> GetBusinessUnitsByAgence(uint agenceId) - { - IEnumerable businessUnits = BusinessUnitServices.GetBusinessUnitsByAgence(agenceId); - if (!businessUnits.Any()) - return NotFound(); - - return Ok(businessUnits); - } } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs index 088cd8e..569bc08 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs @@ -21,8 +21,8 @@ internal static class Register if (contextOptions.LoadFake) { services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); + //services.AddSingleton(); + //services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json index 64f8b67..b8e3730 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json @@ -8,8 +8,8 @@ "AllowedHosts": "*", "Sql": { "LoadFake": false, - "ConnectionString": "server=database;user=root;password=root;database=collaborateur_epa" //préprod + //"ConnectionString": "server=database;user=root;password=root;database=collaborateur_epa" //préprod //"ConnectionString": "server=db;user=root;password=root;database=collaborateur_epa" //docker-compose - //"ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" //local + "ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" //local } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/AgenceApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/AgenceApiDto.cs index 630761b..b1e54c0 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/AgenceApiDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/AgenceApiDto.cs @@ -2,7 +2,7 @@ namespace espacecollab.backend.appservices.dtos; -public record AgenceApiDto(uint Id, string Name) : IGenericIdApiDto +public record AgenceApiDto(uint Id, string Name, uint BusinessUnitId) : IGenericIdApiDto { public uint Id { get; set; } = Id; } \ 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 index 64a1ddf..affc044 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs @@ -2,7 +2,7 @@ namespace espacecollab.backend.appservices.dtos; -public record BusinessUnitApiDto(uint Id, string Name, uint AgenceId) : IGenericIdApiDto +public record BusinessUnitApiDto(uint Id, string Name) : IGenericIdApiDto { public uint Id { get; set; } = Id; } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/AgenceMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/AgenceMapper.cs index bb078b5..13830a8 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/AgenceMapper.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/AgenceMapper.cs @@ -6,10 +6,10 @@ public static class AgenceMapper { public static AgenceApiDto ToApi(this AgenceSqlDto agenceSqlDto) { - return new AgenceApiDto((uint)agenceSqlDto.Id, agenceSqlDto.Name); + return new AgenceApiDto((uint)agenceSqlDto.Id, agenceSqlDto.Name,(uint)agenceSqlDto.BusinessUnitId); } public static AgenceSqlDto ToSql(this AgenceApiDto agenceApiDto) { - return new AgenceSqlDto((int)agenceApiDto.Id, agenceApiDto.Name); + return new AgenceSqlDto((int)agenceApiDto.Id, agenceApiDto.Name, (int)agenceApiDto.BusinessUnitId); } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs index 983558a..945e350 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs @@ -6,10 +6,10 @@ public static class BusinessUnitMapper { public static BusinessUnitApiDto ToApi(this BusinessUnitSqlDto businessUnitSqlDto) { - return new BusinessUnitApiDto((uint)businessUnitSqlDto.Id, businessUnitSqlDto.Name, (uint)businessUnitSqlDto.AgenceId); + return new BusinessUnitApiDto((uint)businessUnitSqlDto.Id, businessUnitSqlDto.Name); } public static BusinessUnitSqlDto ToSql(this BusinessUnitApiDto businessUnitApiDto) { - return new BusinessUnitSqlDto((int)businessUnitApiDto.Id, businessUnitApiDto.Name, (int)businessUnitApiDto.AgenceId); + return new BusinessUnitSqlDto((int)businessUnitApiDto.Id, businessUnitApiDto.Name); } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs index e081882..5a863a1 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs @@ -7,8 +7,16 @@ namespace espacecollab.backend.appservices; public class AgenceService : GenericsServices { + private IAgenceRepository AgenceRepository { get; } + public AgenceService(IAgenceRepository agenceRepository) : base(agenceRepository, AgenceMapper.ToApi, AgenceMapper.ToSql) { + AgenceRepository = agenceRepository; + } + + public IEnumerable GetAgencesByBusinessUnit(uint businessUnitId) + { + return AgenceRepository.GetAgencesByBusinessUnit((int)businessUnitId).Select(bu => bu.ToApi()); } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs index fd306c0..343be55 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitService.cs @@ -7,14 +7,9 @@ namespace espacecollab.backend.appservices; public class BusinessUnitService : GenericsServices { - private IBusinessUnitRepository BusinessUnitRepository { get; } - public BusinessUnitService(IBusinessUnitRepository businessUnitRepository) :base(businessUnitRepository, BusinessUnitMapper.ToApi, BusinessUnitMapper.ToSql) {} - public IEnumerable GetBusinessUnitsByAgence(uint agenceId) - { - return BusinessUnitRepository.GetBusinessUnitsByAgence((int)agenceId).Select(bu => bu.ToApi()); - } + } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeAgenceRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeAgenceRepository.cs index a13a56d..a8aa967 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeAgenceRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeAgenceRepository.cs @@ -3,14 +3,14 @@ using espacecollab.backend.infrastructure.sql.dtos; namespace espacecollab.backend.infrastructure.fake; -public class FakeAgenceRepository : GenericFakeRepository, IAgenceRepository -{ - public FakeAgenceRepository() - { - Context = new List - { - new(1, "Tours"), - new(2, "Clermont-Ferrand") - }; - } -} \ No newline at end of file +//public class FakeAgenceRepository : GenericFakeRepository, IAgenceRepository +//{ +// public FakeAgenceRepository() +// { +// Context = new List +// { +// new(1, "Tours"), +// new(2, "Clermont-Ferrand") +// }; +// } +//} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs index fcd8637..4c8f5f5 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakeBusinessUnitRepository.cs @@ -1,21 +1,21 @@ -using espacecollab.backend.infrastructure.interfaces; -using espacecollab.backend.infrastructure.sql.dtos; +//using espacecollab.backend.infrastructure.interfaces; +//using espacecollab.backend.infrastructure.sql.dtos; -namespace espacecollab.backend.infrastructure.fake; +//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) - }; - } +//public class FakeBusinessUnitRepository : GenericFakeRepository, IBusinessUnitRepository +//{ +// public FakeBusinessUnitRepository() +// { +// Context = new List +// { +// new(1, "BU 1", 1), +// new(2, "BU 2", 1) +// }; +// } - public IList GetBusinessUnitsByAgence(int agenceId) - { - return Context.Where(c => c.AgenceId == agenceId).ToList(); - } -} \ No newline at end of file +// public IList GetBusinessUnitsByAgence(int agenceId) +// { +// return Context.Where(c => c.AgenceId == agenceId).ToList(); +// } +//} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IAgenceRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IAgenceRepository.cs index e93c032..e619cc4 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IAgenceRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IAgenceRepository.cs @@ -4,4 +4,5 @@ namespace espacecollab.backend.infrastructure.interfaces; public interface IAgenceRepository : IGenericRepository { + public IList GetAgencesByBusinessUnit(int businessUnitId); } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs index 0689055..5ef62a0 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs @@ -4,5 +4,4 @@ namespace espacecollab.backend.infrastructure.interfaces; public interface IBusinessUnitRepository : IGenericRepository { - public IList GetBusinessUnitsByAgence(int agenceId); } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/AgenceSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/AgenceSqlDto.cs index 5059f70..dd365b2 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/AgenceSqlDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/AgenceSqlDto.cs @@ -11,6 +11,7 @@ public class AgenceSqlDto : IGenericIdSqlDto [Key] public int Id { get; set; } public string Name { get; set; } + public int BusinessUnitId { get; set; } [ExcludeFromCodeCoverage] @@ -18,9 +19,10 @@ public class AgenceSqlDto : IGenericIdSqlDto { } - public AgenceSqlDto(int id, string name) + public AgenceSqlDto(int id, string name, int businessUnitId) { Id = id; Name = name; + BusinessUnitId = businessUnitId; } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/BusinessUnitSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/BusinessUnitSqlDto.cs index ce6534e..8e06d9b 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/BusinessUnitSqlDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/BusinessUnitSqlDto.cs @@ -11,7 +11,6 @@ public class BusinessUnitSqlDto : IGenericIdSqlDto [Key] public int Id { get; set; } public string Name { get; set; } - public int AgenceId { get; set; } [ExcludeFromCodeCoverage] @@ -19,10 +18,9 @@ public class BusinessUnitSqlDto : IGenericIdSqlDto { } - public BusinessUnitSqlDto(int id, string name, int agenceId) + public BusinessUnitSqlDto(int id, string name) { Id = id; Name = name; - AgenceId = agenceId; } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/AgenceSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/AgenceSqlRepository.cs index a5f569b..2cfd895 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/AgenceSqlRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/AgenceSqlRepository.cs @@ -8,4 +8,7 @@ public class AgenceSqlRepository : GenericSqlRepository, IAgenceRe public AgenceSqlRepository(MainDbContext context) : base(context) { } + + public IList GetAgencesByBusinessUnit(int businessUnitId) + => Context.Set().Where(bu => bu.BusinessUnitId == businessUnitId).ToList(); } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs index 85e47c0..f7dce39 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs @@ -9,6 +9,5 @@ public class BusinessUnitSqlRepository : GenericSqlRepository GetBusinessUnitsByAgence(int agenceId) - => Context.Set().Where(bu => bu.AgenceId == agenceId).ToList(); + } \ No newline at end of file