From fa4e6668ff65ce4136d89d0937a023ed7778af37 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Fri, 18 Feb 2022 14:36:21 +0100 Subject: [PATCH 1/3] =?UTF-8?q?ajout=20de=20l'entit=C3=A9=20businessUnit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...enceController.cs => AgencesController.cs} | 4 +-- .../Controllers/BusinessUnitsController.cs | 28 +++++++++++++++++++ .../espacecollab.backend.api/Register.cs | 4 ++- .../BusinessUnitApiDto.cs | 8 ++++++ .../Mappers/BusinessUnitMapper.cs | 15 ++++++++++ .../{AgenceService.cs => AgenceServices.cs} | 4 +-- .../BusinessUnitServices.cs | 19 +++++++++++++ .../IBusinessUnitRepository.cs | 1 + .../MainDbContext.cs | 4 +++ .../Repository/BusinessUnitSqlRepository.cs | 13 +++++++++ .../Repository/GenericSqlRepository.cs | 2 +- 11 files changed, 96 insertions(+), 6 deletions(-) rename Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/{AgenceController.cs => AgencesController.cs} (53%) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/BusinessUnitMapper.cs rename Collaborateur_Epa_Back/espacecollab.backend.appservices/{AgenceService.cs => AgenceServices.cs} (71%) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitServices.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgenceController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs similarity index 53% rename from Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgenceController.cs rename to Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs index dc96075..be84b16 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgenceController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs @@ -3,9 +3,9 @@ using espacecollab.backend.appservices.dtos; namespace espacecollab.backend.api.Controllers { - public class AgenceController : BaseController + public class AgencesController : BaseController { - public AgenceController(AgenceService agenceService) : base(agenceService) + public AgencesController(AgenceServices agenceService) : base(agenceService) { } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs new file mode 100644 index 0000000..60fa49b --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs @@ -0,0 +1,28 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.appservices.dtos; +using Microsoft.AspNetCore.Mvc; + +namespace espacecollab.backend.api.Controllers +{ + //[Route("api/[controller]")] + //[ApiController] + public class BusinessUnitsController : BaseController + { + private BusinessUnitServices BusinessUnitServices { get; } + + public BusinessUnitsController(BusinessUnitServices businessUnitServices) : base(businessUnitServices) + { + BusinessUnitServices = businessUnitServices; + } + + [HttpGet("agence/{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 4616de7..5c2b55f 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs @@ -13,7 +13,8 @@ internal static class Register { services.AddCors(); services.AddScoped(); - services.AddScoped(); + services.AddScoped(); + services.AddScoped(); if (contextOptions.LoadFake) { @@ -25,6 +26,7 @@ internal static class Register 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..9f48eaa --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/BusinessUnitApiDto.cs @@ -0,0 +1,8 @@ +using espacecollab.backend.appservices.dtos.Interfaces; + +namespace espacecollab.backend.appservices.dtos; + +public record BusinessUnitApiDto(uint Id, string Name, int AgenceId) : IGenericIdApiDto +{ + public uint Id { get; set; } = Id; +} \ 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 new file mode 100644 index 0000000..01823d2 --- /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 agenceSqlDto) + { + return new BusinessUnitApiDto((uint)agenceSqlDto.Id, agenceSqlDto.Name,agenceSqlDto.AgenceId); + } + public static BusinessUnitSqlDto ToSql(this BusinessUnitApiDto agenceApiDto) + { + return new BusinessUnitSqlDto((int)agenceApiDto.Id, agenceApiDto.Name, agenceApiDto.AgenceId); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceServices.cs similarity index 71% rename from Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs rename to Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceServices.cs index fb7bfef..defd0b7 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceService.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceServices.cs @@ -5,9 +5,9 @@ using espacecollab.backend.infrastructure.sql.dtos; namespace espacecollab.backend.appservices; -public class AgenceService : GenericsServices +public class AgenceServices : GenericsServices { - public AgenceService(IAgenceRepository agenceRepository) + public AgenceServices(IAgenceRepository agenceRepository) :base(agenceRepository, AgenceMapper.ToApi, AgenceMapper.ToSql) { } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitServices.cs new file mode 100644 index 0000000..10e4df5 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitServices.cs @@ -0,0 +1,19 @@ +using espacecollab.backend.appservices.dtos; +using espacecollab.backend.appservices.dtos.Mappers; +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices; + +public class BusinessUnitServices : GenericsServices +{ + private IBusinessUnitRepository BusinessUnitRepository { get; } + public BusinessUnitServices(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.interfaces/IBusinessUnitRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs index 42a10fd..08700a5 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs @@ -4,5 +4,6 @@ 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/MainDbContext.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs index 247426c..9077ed2 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs @@ -8,6 +8,8 @@ namespace espacecollab.backend.infrastructure.sql { private IOptions SqlSettings { get; } private DbSet? Collaborateur { get; set; } + private DbSet? Agence { get; set; } + private DbSet? BusinessUnit { get; set; } public MainDbContext(IOptions sqlSettings) { @@ -23,6 +25,8 @@ namespace espacecollab.backend.infrastructure.sql protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); + modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity().Property(p=> p.Id).UseMySqlIdentityColumn(); modelBuilder .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..34fdd60 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs @@ -0,0 +1,13 @@ +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) + { + } + public IList GetBusinessUnitsByAgence(int agenceId) + => Context.Set().Where(bu => bu.AgenceId == agenceId).ToList(); +} \ 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 77d9023..384c963 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs @@ -15,7 +15,7 @@ namespace espacecollab.backend.infrastructure.sql.Repository public virtual T? Add(T entity) { - Context.Set().Add(entity); + Context.Set().Add(entity); Context.SaveChanges(); return entity; From eba5a08fe806c9125eac97132c5b59e48174b988 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Fri, 18 Feb 2022 15:01:46 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Ajout=20entit=C3=A9=20Fonction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FonctionsController.cs | 12 ++++++++++++ .../espacecollab.backend.api/Register.cs | 2 ++ .../FonctionApiDto.cs | 8 ++++++++ .../Mappers/FonctionMapper.cs | 15 +++++++++++++++ .../FonctionServices.cs | 14 ++++++++++++++ .../IFonctionRepository.cs | 8 ++++++++ .../FonctionSqlDto.cs | 6 +++--- .../MainDbContext.cs | 2 ++ .../Repository/FonctionSqlRepository.cs | 11 +++++++++++ 9 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/FonctionsController.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/FonctionApiDto.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/FonctionMapper.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices/FonctionServices.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IFonctionRepository.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/FonctionSqlRepository.cs diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/FonctionsController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/FonctionsController.cs new file mode 100644 index 0000000..431862a --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/FonctionsController.cs @@ -0,0 +1,12 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.appservices.dtos; + +namespace espacecollab.backend.api.Controllers +{ + public class FonctionsController : BaseController + { + public FonctionsController(FonctionServices fonctionService) : base(fonctionService) + { + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs index 5c2b55f..8012c98 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs @@ -15,6 +15,7 @@ internal static class Register services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); if (contextOptions.LoadFake) { @@ -27,6 +28,7 @@ internal static class Register services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); } } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/FonctionApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/FonctionApiDto.cs new file mode 100644 index 0000000..a839b9e --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/FonctionApiDto.cs @@ -0,0 +1,8 @@ +using espacecollab.backend.appservices.dtos.Interfaces; + +namespace espacecollab.backend.appservices.dtos; + +public record FonctionApiDto(uint Id, string Intitule) : IGenericIdApiDto +{ + public uint Id { get; set; } = Id; +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/FonctionMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/FonctionMapper.cs new file mode 100644 index 0000000..1084d60 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/FonctionMapper.cs @@ -0,0 +1,15 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices.dtos.Mappers; + +public static class FonctionMapper +{ + public static FonctionApiDto ToApi(this FonctionSqlDto fonctionSqlDto) + { + return new FonctionApiDto((uint)fonctionSqlDto.Id, fonctionSqlDto.Intitule); + } + public static FonctionSqlDto ToSql(this FonctionApiDto fonctionApiDto) + { + return new FonctionSqlDto((int)fonctionApiDto.Id, fonctionApiDto.Intitule); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/FonctionServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/FonctionServices.cs new file mode 100644 index 0000000..ad02b9a --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/FonctionServices.cs @@ -0,0 +1,14 @@ +using espacecollab.backend.appservices.dtos; +using espacecollab.backend.appservices.dtos.Mappers; +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices; + +public class FonctionServices : GenericsServices +{ + public FonctionServices(IFonctionRepository fonctionRepository) + :base(fonctionRepository, FonctionMapper.ToApi, FonctionMapper.ToSql) + { + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IFonctionRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IFonctionRepository.cs new file mode 100644 index 0000000..633c38b --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IFonctionRepository.cs @@ -0,0 +1,8 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.interfaces +{ + public interface IFonctionRepository : IGenericRepository + { + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/FonctionSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/FonctionSqlDto.cs index 0d67697..f66a969 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/FonctionSqlDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/FonctionSqlDto.cs @@ -6,17 +6,17 @@ namespace espacecollab.backend.infrastructure.sql.dtos public class FonctionSqlDto : IGenericIdSqlDto { public int Id { get; set; } - public string Name { get; set; } + public string Intitule { get; set; } [ExcludeFromCodeCoverage] private FonctionSqlDto() { } - public FonctionSqlDto(int id, string name) + public FonctionSqlDto(int id, string intitule) { Id = id; - Name = name; + Intitule = intitule; } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs index 9077ed2..ceb2e44 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs @@ -10,6 +10,7 @@ namespace espacecollab.backend.infrastructure.sql private DbSet? Collaborateur { get; set; } private DbSet? Agence { get; set; } private DbSet? BusinessUnit { get; set; } + private DbSet? Fonction { get; set; } public MainDbContext(IOptions sqlSettings) { @@ -27,6 +28,7 @@ namespace espacecollab.backend.infrastructure.sql { modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); + modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity().Property(p=> p.Id).UseMySqlIdentityColumn(); modelBuilder .Entity() diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/FonctionSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/FonctionSqlRepository.cs new file mode 100644 index 0000000..5f79650 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/FonctionSqlRepository.cs @@ -0,0 +1,11 @@ +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.sql.Repository; + +public class FonctionSqlRepository : GenericSqlRepository, IFonctionRepository +{ + public FonctionSqlRepository(MainDbContext context) : base(context) + { + } +} \ No newline at end of file From 3ec436832458dfe68175ce05315333cac14763df Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Fri, 18 Feb 2022 15:47:01 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Mise=20en=20place=20de=20l'entit=C3=A9=20Te?= =?UTF-8?q?chnologie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/TechnologiesController.cs | 12 ++++++++++++ .../espacecollab.backend.api/Register.cs | 2 ++ .../Mappers/TechnologieMapper.cs | 15 +++++++++++++++ .../TechnologieApiDto.cs | 8 ++++++++ .../TechnologieServices.cs | 14 ++++++++++++++ .../ITechnologieRepository.cs | 8 ++++++++ .../MainDbContext.cs | 2 ++ .../Repository/TechnologieSqlRepository.cs | 11 +++++++++++ 8 files changed, 72 insertions(+) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/TechnologiesController.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/TechnologieMapper.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/TechnologieApiDto.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices/TechnologieServices.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/ITechnologieRepository.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/TechnologieSqlRepository.cs diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/TechnologiesController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/TechnologiesController.cs new file mode 100644 index 0000000..cfd482e --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/TechnologiesController.cs @@ -0,0 +1,12 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.appservices.dtos; + +namespace espacecollab.backend.api.Controllers +{ + public class TechnologiesController : BaseController + { + public TechnologiesController(TechnologieServices technologieServices) : base(technologieServices) + { + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs index 8012c98..97fbefd 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs @@ -16,6 +16,7 @@ internal static class Register services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); if (contextOptions.LoadFake) { @@ -29,6 +30,7 @@ internal static class Register services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); } } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/TechnologieMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/TechnologieMapper.cs new file mode 100644 index 0000000..333fbdf --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/TechnologieMapper.cs @@ -0,0 +1,15 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices.dtos.Mappers; + +public static class TechnologieMapper +{ + public static TechnologieApiDto ToApi(this TechnologieSqlDto technologieSqlDto) + { + return new TechnologieApiDto((uint)technologieSqlDto.Id, technologieSqlDto.Name); + } + public static TechnologieSqlDto ToSql(this TechnologieApiDto technologieApiDto) + { + return new TechnologieSqlDto((int)technologieApiDto.Id, technologieApiDto.Name); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/TechnologieApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/TechnologieApiDto.cs new file mode 100644 index 0000000..812cfe2 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/TechnologieApiDto.cs @@ -0,0 +1,8 @@ +using espacecollab.backend.appservices.dtos.Interfaces; + +namespace espacecollab.backend.appservices.dtos; + +public record TechnologieApiDto(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/TechnologieServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/TechnologieServices.cs new file mode 100644 index 0000000..4c32415 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/TechnologieServices.cs @@ -0,0 +1,14 @@ +using espacecollab.backend.appservices.dtos; +using espacecollab.backend.appservices.dtos.Mappers; +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices; + +public class TechnologieServices : GenericsServices +{ + public TechnologieServices(ITechnologieRepository technologieRepository) + :base(technologieRepository, TechnologieMapper.ToApi, TechnologieMapper.ToSql) + { + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/ITechnologieRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/ITechnologieRepository.cs new file mode 100644 index 0000000..1424cce --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/ITechnologieRepository.cs @@ -0,0 +1,8 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.interfaces +{ + public interface ITechnologieRepository : IGenericRepository + { + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs index ceb2e44..fed8d61 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs @@ -11,6 +11,7 @@ namespace espacecollab.backend.infrastructure.sql private DbSet? Agence { get; set; } private DbSet? BusinessUnit { get; set; } private DbSet? Fonction { get; set; } + private DbSet? Technologie { get; set; } public MainDbContext(IOptions sqlSettings) { @@ -29,6 +30,7 @@ namespace espacecollab.backend.infrastructure.sql modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); + modelBuilder.Entity().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity().Property(p=> p.Id).UseMySqlIdentityColumn(); modelBuilder .Entity() diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/TechnologieSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/TechnologieSqlRepository.cs new file mode 100644 index 0000000..3a48499 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/TechnologieSqlRepository.cs @@ -0,0 +1,11 @@ +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.sql.Repository; + +public class TechnologieSqlRepository : GenericSqlRepository, ITechnologieRepository +{ + public TechnologieSqlRepository(MainDbContext context) : base(context) + { + } +} \ No newline at end of file