From faf2cccee7794ee590fad30d42a716521bfeb1e3 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Wed, 24 Nov 2021 11:59:03 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20controller,=20service=20et=20repos?= =?UTF-8?q?itory=20+=20g=C3=A9n=C3=A9ricit=C3=A9=20+=20fix=20de=20program?= =?UTF-8?q?=20et=20startup=20et=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/CollaborateursController.cs | 25 +++++++++++ .../Controllers/GenericsController.cs | 43 +++++++++++++++++++ .../espacecollab.backend.api/Program.cs | 1 - .../espacecollab.backend.api/Startup.cs | 12 +++++- .../espacecollab.backend.api/appsettings.json | 2 +- .../espacecollab.backend.api.csproj | 5 +-- .../CollaborateurApiDto.cs | 42 ++++++++++++++++++ .../EnumGenreApi.cs | 9 ++++ .../EnumStatutApi.cs | 10 +++++ .../Mappers/CollaborateurApiDtoMapper.cs | 15 +++++++ .../Mappers/EnumGenreMapper.cs | 23 ++++++++++ .../Mappers/EnumStatutMapper.cs | 24 +++++++++++ ...pacecollab.backend.appservices.dtos.csproj | 6 ++- .../CollaborateursServices.cs | 21 +++++++++ .../GenericsServices.cs | 42 ++++++++++++++++++ .../espacecollab.backend.appservices.csproj | 5 +++ .../CollaborateurSqlDto.cs | 6 +-- .../{EnumGenre.cs => EnumGenreSql.cs} | 2 +- .../{EnumIssue.cs => EnumIssueSql.cs} | 2 +- .../{EnumStatut.cs => EnumStatutSql.cs} | 2 +- .../PeriodeEssaiSqlDto.cs | 4 +- .../MainDbContext.cs | 5 ++- .../SqlRepo/GenericRepository.cs | 36 ++++++++++++++++ .../SqlRepo/IGenericEntity.cs | 7 +++ .../Interface/IBusinessUnitRepository.cs | 4 +- .../SqlRepo/Interface/IGenericRepository.cs | 15 +++++++ .../Interface/INotGenericRepository.cs | 11 +++++ .../Interface/IPeriodeEssaiRepository.cs | 12 ++++++ .../db/db_1_0_0.sql | 26 +++++------ 29 files changed, 384 insertions(+), 33 deletions(-) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/GenericsController.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/CollaborateurApiDtoMapper.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs rename Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/{EnumGenre.cs => EnumGenreSql.cs} (80%) rename Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/{EnumIssue.cs => EnumIssueSql.cs} (86%) rename Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/{EnumStatut.cs => EnumStatutSql.cs} (82%) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/GenericRepository.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/IGenericEntity.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IGenericRepository.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/INotGenericRepository.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IPeriodeEssaiRepository.cs diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs new file mode 100644 index 0000000..426c042 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs @@ -0,0 +1,25 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.appservices.dtos; +using Microsoft.AspNetCore.Mvc; + +namespace espacecollab.backend.api.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class CollaborateursController : ControllerBase + { + private CollaborateursServices CollaborateursServices { get; } + + public CollaborateursController(CollaborateursServices collaborateursServices) + { + CollaborateursServices = collaborateursServices; + } + + // GET: api/collaborateurs + [HttpGet] + public IEnumerable GetCollaborateurs() + { + return CollaborateursServices.GetCollaborateurs(); + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/GenericsController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/GenericsController.cs new file mode 100644 index 0000000..2502c62 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/GenericsController.cs @@ -0,0 +1,43 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.appservices.dtos; +using espacecollab.backend.infrastructure.sql.SqlRepo; +using Microsoft.AspNetCore.Mvc; + +namespace espacecollab.backend.api.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class GenericsController : ControllerBase + { + private GenericsServices GenericsServices { get; } + + public GenericsController(GenericsServices genericsServices) + { + GenericsServices = genericsServices; + } + + [HttpGet] + public IEnumerable GetAll() where T : class + { + return GenericsServices.GetAll(); + } + + [HttpGet] + public T? GetById(Guid id) where T : class, IGenericEntity + { + return GenericsServices.GetById(id); + } + + [HttpPost] + public T? Update(T entity) where T : class, IGenericEntity + { + return GenericsServices.Update(entity); + } + + [HttpPost] + public T? Add(T entity) where T : class + { + return GenericsServices.Add(entity); + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Program.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Program.cs index cd1ba0a..5520279 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Program.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Program.cs @@ -11,7 +11,6 @@ namespace Api Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { - webBuilder.UseStartup(); }); } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Startup.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Startup.cs index 3a242e4..91d17f2 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Startup.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Startup.cs @@ -1,5 +1,8 @@ -using espacecollab.backend.infrastructure.sql; +using espacecollab.backend.appservices; +using espacecollab.backend.infrastructure.sql; using espacecollab.backend.infrastructure.sql.Options; +using espacecollab.backend.infrastructure.sql.SqlRepo; +using espacecollab.backend.infrastructure.sql.SqlRepo.Interface; namespace Api { @@ -18,12 +21,17 @@ namespace Api IConfigurationSection sqlSection = Configuration.GetSection(SqlOption.Key); services.Configure(sqlSection); - SqlOption contextOptions = sqlSection.Get(); services.AddControllers(); services.AddRouting(options => options.LowercaseUrls = true); + + services.AddScoped(); + services.AddScoped(); + + services.AddScoped(); + services.AddScoped(); services.AddEndpointsApiExplorer(); diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json index 2c9c17d..4a29edc 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json @@ -8,6 +8,6 @@ "AllowedHosts": "*", "Sql": { "LoadFake": false, - "ConnectionString": "Server=localhost;Database=collaborateur_epa;Uid=root;Pwd=root;" + "ConnectionString": "server=127.0.0.1;uid=root;pwd=root;database=collaborateur_epa" } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj b/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj index 19cd919..348965b 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj @@ -11,10 +11,7 @@ - - - - + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs new file mode 100644 index 0000000..6bbbb9d --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs @@ -0,0 +1,42 @@ +namespace espacecollab.backend.appservices.dtos +{ + public class CollaborateurApiDto + { + public Guid Id { get; set; } + public string Name { get; set; } + public string FirstName { get; set; } + public DateTime BirthDate { get; set; } + public EnumGenreApi Gender { get; set; } + public EnumStatutApi Status { get; set; } + public int ChildrenNumber { get; set; } + public string Address { get; set; } + public string Telephone { get; set; } + public string PersonalMail { get; set; } + public string ApsideMail { get; set; } + public DateTime ResignationDate { get; set; } + public Guid ReferrerId { get; set; } + public Guid BusinessUnitId { get; set; } + + private CollaborateurApiDto() + { + } + + public CollaborateurApiDto(Guid id, string name, string firstName, DateTime birthDate, EnumGenreApi gender, EnumStatutApi status, int childrenNumber, string address, string telephone, string personalMail, string apsideMail, DateTime resignationDate, Guid referrerId, Guid businessUnitId) + { + Id = id; + Name = name; + FirstName = firstName; + BirthDate = birthDate; + Gender = gender; + Status = status; + ChildrenNumber = childrenNumber; + Address = address; + Telephone = telephone; + PersonalMail = personalMail; + ApsideMail = apsideMail; + ResignationDate = resignationDate; + ReferrerId = referrerId; + BusinessUnitId = businessUnitId; + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs new file mode 100644 index 0000000..9414526 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumGenreApi.cs @@ -0,0 +1,9 @@ +namespace espacecollab.backend.appservices.dtos +{ + public enum EnumGenreApi + { + MASCULIN, + FEMININ, + AUTRE + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs new file mode 100644 index 0000000..35c7d70 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/EnumStatutApi.cs @@ -0,0 +1,10 @@ +namespace espacecollab.backend.appservices.dtos +{ + public enum EnumStatutApi + { + CADRE, + NONCADRE, + ALTERNANT, + STAGIAIRE + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/CollaborateurApiDtoMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/CollaborateurApiDtoMapper.cs new file mode 100644 index 0000000..715bc1d --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/CollaborateurApiDtoMapper.cs @@ -0,0 +1,15 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices.dtos.Mappers +{ + public static class CollaborateurApiDtoMapper + { + public static CollaborateurApiDto ToCollaborateurApi(this CollaborateurSqlDto collaborateurSql) + { + return new CollaborateurApiDto(collaborateurSql.Id, collaborateurSql.Name, collaborateurSql.FirstName, + collaborateurSql.BirthDate, collaborateurSql.Gender.ToEnumGenreApi(), collaborateurSql.Status.ToEnumStatutApi(), collaborateurSql.ChildrenNumber, + collaborateurSql.Address, collaborateurSql.Telephone, collaborateurSql.PersonalMail, collaborateurSql.ApsideMail, + collaborateurSql.ResignationDate, collaborateurSql.ReferrerId, collaborateurSql.BusinessUnitId); + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs new file mode 100644 index 0000000..9fb595c --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumGenreMapper.cs @@ -0,0 +1,23 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices.dtos.Mappers +{ + public static class EnumGenreMapper + { + public static EnumGenreApi ToEnumGenreApi(this EnumGenreSql enumGenreSql) + { + switch (enumGenreSql) + { + case EnumGenreSql.MASCULIN: + return EnumGenreApi.MASCULIN; + case EnumGenreSql.FEMININ: + return EnumGenreApi.FEMININ; + case EnumGenreSql.AUTRE: + return EnumGenreApi.AUTRE; + default: + return EnumGenreApi.AUTRE; + } + + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs new file mode 100644 index 0000000..c940f38 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/EnumStatutMapper.cs @@ -0,0 +1,24 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.appservices.dtos.Mappers +{ + public static class EnumStatutMapper + { + public static EnumStatutApi ToEnumStatutApi(this EnumStatutSql enumStatutSql) + { + switch (enumStatutSql) + { + case EnumStatutSql.STAGIAIRE: + return EnumStatutApi.STAGIAIRE; + case EnumStatutSql.NONCADRE: + return EnumStatutApi.NONCADRE; + case EnumStatutSql.CADRE: + return EnumStatutApi.CADRE; + case EnumStatutSql.ALTERNANT: + return EnumStatutApi.ALTERNANT; + default: return EnumStatutApi.NONCADRE; + } + + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/espacecollab.backend.appservices.dtos.csproj b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/espacecollab.backend.appservices.dtos.csproj index 132c02c..26c891b 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/espacecollab.backend.appservices.dtos.csproj +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/espacecollab.backend.appservices.dtos.csproj @@ -1,4 +1,4 @@ - + net6.0 @@ -6,4 +6,8 @@ enable + + + + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs new file mode 100644 index 0000000..24d92c9 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursServices.cs @@ -0,0 +1,21 @@ +using espacecollab.backend.appservices.dtos; +using espacecollab.backend.appservices.dtos.Mappers; +using espacecollab.backend.infrastructure.sql.SqlRepo.Interface; + +namespace espacecollab.backend.appservices +{ + public class CollaborateursServices + { + private ICollaborateurRepository CollaborateurRepository { get; } + + public CollaborateursServices(ICollaborateurRepository collaborateurRepository) + { + CollaborateurRepository = collaborateurRepository; + } + + public IEnumerable GetCollaborateurs() + { + return CollaborateurRepository.GetAllCollaborateurs().Select(collaborateurSql => collaborateurSql.ToCollaborateurApi()); + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs new file mode 100644 index 0000000..c17df44 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs @@ -0,0 +1,42 @@ +using espacecollab.backend.infrastructure.sql.SqlRepo; +using espacecollab.backend.infrastructure.sql.SqlRepo.Interface; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace espacecollab.backend.appservices +{ + public class GenericsServices + { + private IGenericRepository genericRepository { get; } + + public GenericsServices(IGenericRepository genericRepository) + { + this.genericRepository = genericRepository; + } + + public T? Add(T entity) where T : class + { + return genericRepository.Add(entity); + } + + public IEnumerable GetAll() where T : class + { + return genericRepository.GetAll(); + } + + public T? GetById(Guid id) where T : class, IGenericEntity + { + return genericRepository.GetById(id); + } + + public T? Update(T entity) where T : class, IGenericEntity + { + return genericRepository.Update(entity); + } + + + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/espacecollab.backend.appservices.csproj b/Collaborateur_Epa_Back/espacecollab.backend.appservices/espacecollab.backend.appservices.csproj index 132c02c..69235a9 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/espacecollab.backend.appservices.csproj +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/espacecollab.backend.appservices.csproj @@ -6,4 +6,9 @@ enable + + + + + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/CollaborateurSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/CollaborateurSqlDto.cs index 3c84b33..89d774d 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/CollaborateurSqlDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/CollaborateurSqlDto.cs @@ -8,8 +8,8 @@ namespace espacecollab.backend.infrastructure.sql.dtos public string Name { get; set; } public string FirstName { get; set; } public DateTime BirthDate { get; set; } - public EnumGenre Gender { get; set; } - public EnumStatut Status { get; set; } + public EnumGenreSql Gender { get; set; } + public EnumStatutSql Status { get; set; } public int ChildrenNumber { get; set; } public string Address { get; set; } public string Telephone { get; set; } @@ -24,7 +24,7 @@ namespace espacecollab.backend.infrastructure.sql.dtos { } - public CollaborateurSqlDto(Guid id, string name, string firstName, DateTime birthDate, EnumGenre gender, EnumStatut status, int childrenNumber, string address, string telephone, string personalMail, string apsideMail, DateTime resignationDate, Guid referrerId, Guid businessUnitId) + public CollaborateurSqlDto(Guid id, string name, string firstName, DateTime birthDate, EnumGenreSql gender, EnumStatutSql status, int childrenNumber, string address, string telephone, string personalMail, string apsideMail, DateTime resignationDate, Guid referrerId, Guid businessUnitId) { Id = id; Name = name; diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumGenre.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumGenreSql.cs similarity index 80% rename from Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumGenre.cs rename to Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumGenreSql.cs index 2170465..0fc889b 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumGenre.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumGenreSql.cs @@ -1,6 +1,6 @@ namespace espacecollab.backend.infrastructure.sql.dtos { - public enum EnumGenre + public enum EnumGenreSql { MASCULIN, FEMININ, diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumIssue.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumIssueSql.cs similarity index 86% rename from Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumIssue.cs rename to Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumIssueSql.cs index faf7bd1..2945779 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumIssue.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumIssueSql.cs @@ -1,6 +1,6 @@ namespace espacecollab.backend.infrastructure.sql.dtos { - public enum EnumIssue + public enum EnumIssueSql { VALIDEE, PROLONGEE_COLLAB, diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumStatut.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumStatutSql.cs similarity index 82% rename from Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumStatut.cs rename to Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumStatutSql.cs index 1f1d737..9e57875 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumStatut.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/EnumStatutSql.cs @@ -1,6 +1,6 @@ namespace espacecollab.backend.infrastructure.sql.dtos { - public enum EnumStatut + public enum EnumStatutSql { CADRE, NONCADRE, diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/PeriodeEssaiSqlDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/PeriodeEssaiSqlDto.cs index ead65f7..5d9a9e5 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/PeriodeEssaiSqlDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/PeriodeEssaiSqlDto.cs @@ -9,7 +9,7 @@ namespace espacecollab.backend.infrastructure.sql.dtos public DateTime PlannedEndingDate { get; set; } public DateTime RealEndingDate { get; set; } public string Comment { get; set; } - public EnumIssue Issue { get; set; } + public EnumIssueSql Issue { get; set; } public Guid CollaborateurId { get; set; } [ExcludeFromCodeCoverage] @@ -17,7 +17,7 @@ namespace espacecollab.backend.infrastructure.sql.dtos { } - public PeriodeEssaiSqlDto(Guid id, DateTime startingDate, DateTime plannedEndingDate, DateTime realEndingDate, string comment, EnumIssue issue, Guid collaborateurId) + public PeriodeEssaiSqlDto(Guid id, DateTime startingDate, DateTime plannedEndingDate, DateTime realEndingDate, string comment, EnumIssueSql issue, Guid collaborateurId) { Id = id; StartingDate = startingDate; diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs index 2688dd6..25204d2 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs @@ -16,7 +16,10 @@ namespace espacecollab.backend.infrastructure.sql } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseSqlServer(SqlSettings.Value.ConnectionString); + optionsBuilder.UseSqlServer(SqlSettings.Value.ConnectionString, builder => + { + builder.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null); + }); } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/GenericRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/GenericRepository.cs new file mode 100644 index 0000000..57d7d78 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/GenericRepository.cs @@ -0,0 +1,36 @@ +using espacecollab.backend.infrastructure.sql.SqlRepo.Interface; + +namespace espacecollab.backend.infrastructure.sql.SqlRepo +{ + public class GenericRepository : IGenericRepository + { + private MainDbContext Context { get; } + + public GenericRepository(MainDbContext context) + { + Context = context; + } + + public T? Add(T entity) where T : class + { + return Context.Set().Add(entity) as T; + } + + public IList GetAll() where T : class + { + return Context.Set().ToList(); + } + + public T? GetById(Guid id) where T : class,IGenericEntity + { + return Context.Set().FirstOrDefault(entity => entity.Id == id); + } + + public T? Update(T entity) where T : class, IGenericEntity + { + Context.Set().Update(entity); + Context.SaveChanges(); + return Context.Set().FirstOrDefault(e => e.Id == entity.Id); + } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/IGenericEntity.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/IGenericEntity.cs new file mode 100644 index 0000000..3c43b76 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/IGenericEntity.cs @@ -0,0 +1,7 @@ +namespace espacecollab.backend.infrastructure.sql.SqlRepo +{ + public interface IGenericEntity + { + public Guid Id { get; set; } + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IBusinessUnitRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IBusinessUnitRepository.cs index 3ccc5ea..db3600b 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IBusinessUnitRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IBusinessUnitRepository.cs @@ -6,7 +6,7 @@ namespace espacecollab.backend.infrastructure.sql.SqlRepo.Interface { BusinessUnitSqlDto? AddBusinessUnit(BusinessUnitSqlDto newBusinessUnit); IList? GetAllBusinessUnits(); - BusinessUnitSqlDto? GetBusinessUnitById(BusinessUnitSqlDto BusinessUnit); - BusinessUnitSqlDto UpdateBusinessUnit(BusinessUnitSqlDto BusinessUnit); + BusinessUnitSqlDto? GetBusinessUnitById(BusinessUnitSqlDto businessUnit); + BusinessUnitSqlDto UpdateBusinessUnit(BusinessUnitSqlDto businessUnit); } } \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IGenericRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IGenericRepository.cs new file mode 100644 index 0000000..e9a8feb --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IGenericRepository.cs @@ -0,0 +1,15 @@ +namespace espacecollab.backend.infrastructure.sql.SqlRepo.Interface +{ + public interface IGenericRepository + { + T? Add(T entity) where T : class; + IList GetAll() where T : class; + T? GetById(Guid id) where T : class, IGenericEntity; + T? Update(T entity) where T : class, IGenericEntity; + + + + + + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/INotGenericRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/INotGenericRepository.cs new file mode 100644 index 0000000..c816bd1 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/INotGenericRepository.cs @@ -0,0 +1,11 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.sql.SqlRepo.Interface +{ + public interface INotGenericRepository + { + CollaborateurSqlDto? GetCollaborateurByApsideMail(string apsideMail); + IList? GetCollaborateursByBusinessUnit(Guid businessUnitId); + IList? GetCollaborateursByReferrer(Guid referrerId); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IPeriodeEssaiRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IPeriodeEssaiRepository.cs new file mode 100644 index 0000000..4b63c0a --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/SqlRepo/Interface/IPeriodeEssaiRepository.cs @@ -0,0 +1,12 @@ +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.sql.SqlRepo.Interface +{ + public interface IPeriodeEssaiRepository + { + PeriodeEssaiSqlDto? AddPeriodeEssai(PeriodeEssaiSqlDto newPeriodeEssai); + IList? GetAllPeriodeEssais(); + PeriodeEssaiSqlDto? GetPeriodeEssaiById(PeriodeEssaiSqlDto periodeEssai); + PeriodeEssaiSqlDto UpdatePeriodeEssai(PeriodeEssaiSqlDto periodeEssai); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/db/db_1_0_0.sql b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/db/db_1_0_0.sql index 5aaeeb4..aa2f461 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/db/db_1_0_0.sql +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/db/db_1_0_0.sql @@ -46,19 +46,6 @@ CREATE TABLE IF NOT EXISTS Technologie( PRIMARY KEY (Id) ); - - -DROP TABLE IF EXISTS PeriodeEssai; -CREATE TABLE IF NOT EXISTS PeriodeEssai( - Id int NOT NULL AUTO_INCREMENT, - StartingDate date NOT NULL, - PlannedEndingDate date NOT NULL, - RealEndingDate date NOT NULL, - Comment varchar(100) NOT NULL, - Issue ENUM('VALIDEE','PROLONGEE_COLLAB','PROLONGEE_APSIDE','ARRETEE_COLLAB','ARRETEE_APSIDE') NOT NULL, - PRIMARY KEY (Id) -); - DROP TABLE IF EXISTS Fonction; CREATE TABLE IF NOT EXISTS Fonction( Id int NOT NULL UNIQUE, @@ -85,6 +72,19 @@ CREATE TABLE IF NOT EXISTS Collaborateur( PRIMARY KEY (Id) ); +DROP TABLE IF EXISTS PeriodeEssai; +CREATE TABLE IF NOT EXISTS PeriodeEssai( + Id int NOT NULL AUTO_INCREMENT, + StartingDate date NOT NULL, + PlannedEndingDate date NOT NULL, + RealEndingDate date NOT NULL, + Comment varchar(100) NOT NULL, + Issue ENUM('VALIDEE','PROLONGEE_COLLAB','PROLONGEE_APSIDE','ARRETEE_COLLAB','ARRETEE_APSIDE') NOT NULL, + CollaborateurId int NOT NULL, + CONSTRAINT FK_COLLABORATEUR_PERIODEESSAI FOREIGN KEY (CollaborateurId) REFERENCES Collaborateur(Id), + PRIMARY KEY (Id) +); + DROP TABLE IF EXISTS Referencement; CREATE TABLE IF NOT EXISTS Referencement( Id int NOT NULL AUTO_INCREMENT,