From eecdf57f36db3d13b2b41ef13419a49a2a590b06 Mon Sep 17 00:00:00 2001 From: Alexandre Ruiz Date: Wed, 15 Dec 2021 14:31:58 +0100 Subject: [PATCH] Periode essaie --- .../Controllers/PeriodeEssai.cs | 11 ++++ .../espacecollab.backend.api/Register.cs | 3 ++ .../Mappers/PeriodeEssaiMapper.cs | 21 ++++++++ .../PeriodeEssaiApiDto.cs | 9 ++++ .../Values/EnumIssueApi.cs | 11 ++++ .../PeriodeEssaiService.cs | 15 ++++++ .../FakePeriodeEssaiRepository.cs | 18 +++++++ .../IPeriodeEssaiRepository.cs | 7 ++- .../PeriodeEssaiSqlDto.cs | 51 +++++++++---------- .../Repository/PeriodeEssaiSqlRepository.cs | 11 ++++ 10 files changed, 127 insertions(+), 30 deletions(-) create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/PeriodeEssai.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/PeriodeEssaiMapper.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/PeriodeEssaiApiDto.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumIssueApi.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.appservices/PeriodeEssaiService.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakePeriodeEssaiRepository.cs create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/PeriodeEssaiSqlRepository.cs diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/PeriodeEssai.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/PeriodeEssai.cs new file mode 100644 index 0000000..2247308 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/PeriodeEssai.cs @@ -0,0 +1,11 @@ +using espacecollab.backend.appservices; +using espacecollab.backend.appservices.dtos; + +namespace espacecollab.backend.api.Controllers; + +public class PeriodeEssaiController : BaseController +{ + public PeriodeEssaiController(PeriodeEssaiService periodeEssaiService) : base(periodeEssaiService) + { + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs index 7460362..a6b0801 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) { @@ -22,6 +23,7 @@ internal static class Register services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); + services.AddSingleton(); } else { @@ -30,6 +32,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/PeriodeEssaiMapper.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/PeriodeEssaiMapper.cs new file mode 100644 index 0000000..cf4417e --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/PeriodeEssaiMapper.cs @@ -0,0 +1,21 @@ +using espacecollab.backend.infrastructure.sql.dtos; +using espacecollab.backend.infrastructure.sql.dtos.Values; + +namespace espacecollab.backend.appservices.dtos.Mappers; + +public static class PeriodeEssaiMapper +{ + public static PeriodeEssaiApiDto ToApi(this PeriodeEssaiSqlDto periodeEssaiSqlDto) + { + return new PeriodeEssaiApiDto((uint)periodeEssaiSqlDto.Id, periodeEssaiSqlDto.StartingDate, + periodeEssaiSqlDto.PlannedEndingDate, periodeEssaiSqlDto.RealEndingDate, periodeEssaiSqlDto.Comment, + (EnumIssueApi)periodeEssaiSqlDto.Issue, (uint)periodeEssaiSqlDto.CollaborateurId); + } + + public static PeriodeEssaiSqlDto ToSql(this PeriodeEssaiApiDto periodeEssaiApiDto) + { + return new PeriodeEssaiSqlDto((int)periodeEssaiApiDto.Id, periodeEssaiApiDto.StartingDate, + periodeEssaiApiDto.PlannedEndingDate, periodeEssaiApiDto.RealEndingDate, periodeEssaiApiDto.Comment, + (EnumIssueSql)periodeEssaiApiDto.Issue, (int)periodeEssaiApiDto.CollaborateurId); + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/PeriodeEssaiApiDto.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/PeriodeEssaiApiDto.cs new file mode 100644 index 0000000..3e4068b --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/PeriodeEssaiApiDto.cs @@ -0,0 +1,9 @@ +using espacecollab.backend.appservices.dtos.Interfaces; +using espacecollab.backend.infrastructure.sql.dtos.Values; + +namespace espacecollab.backend.appservices.dtos; + +public record PeriodeEssaiApiDto(uint Id, DateTime StartingDate, DateTime PlannedEndingDate, DateTime RealEndingDate, string Comment, EnumIssueApi Issue, uint CollaborateurId) : IGenericIdApiDto +{ + public uint Id { get; set; } = Id; +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumIssueApi.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumIssueApi.cs new file mode 100644 index 0000000..25e5ae1 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Values/EnumIssueApi.cs @@ -0,0 +1,11 @@ +namespace espacecollab.backend.infrastructure.sql.dtos.Values +{ + public enum EnumIssueApi + { + VALIDEE, + PROLONGEE_COLLAB, + PROLONGEE_APSIDE, + ARRETEE_COLLAB, + ARRETEE_APSIDE + } +} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/PeriodeEssaiService.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/PeriodeEssaiService.cs new file mode 100644 index 0000000..10e72ac --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/PeriodeEssaiService.cs @@ -0,0 +1,15 @@ +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 PeriodeEssaiService : GenericsServices +{ + public PeriodeEssaiService(IPeriodeEssaiRepository agenceRepository) + : base(agenceRepository, PeriodeEssaiMapper.ToApi, PeriodeEssaiMapper.ToSql) + { + } + +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakePeriodeEssaiRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakePeriodeEssaiRepository.cs new file mode 100644 index 0000000..a44fbae --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.fake/FakePeriodeEssaiRepository.cs @@ -0,0 +1,18 @@ +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; +using espacecollab.backend.infrastructure.sql.dtos.Values; + +namespace espacecollab.backend.infrastructure.fake; + +public class FakePeriodeEssaiRepository : GenericFakeRepository, IPeriodeEssaiRepository +{ + public FakePeriodeEssaiRepository() + { + Context = new List + { + new(1, new DateTime(2021, 10, 1), new DateTime(2021, 12, 1), new DateTime(2022, 1, 1), "A voir", EnumIssueSql.VALIDEE, 1), + + new(2, new DateTime(2021, 10, 1), new DateTime(2021, 12, 1), new DateTime(2022, 1, 1), "Ne pas donner suite", EnumIssueSql.ARRETEE_APSIDE, 2) + }; + } +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IPeriodeEssaiRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IPeriodeEssaiRepository.cs index 64e08f1..e40664b 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IPeriodeEssaiRepository.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IPeriodeEssaiRepository.cs @@ -1,8 +1,7 @@ using espacecollab.backend.infrastructure.sql.dtos; -namespace espacecollab.backend.infrastructure.interfaces +namespace espacecollab.backend.infrastructure.interfaces; + +public interface IPeriodeEssaiRepository : IGenericRepository { - public interface IPeriodeEssaiRepository : IGenericRepository - { - } } \ No newline at end of file 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 7379399..8d361de 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/PeriodeEssaiSqlDto.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/PeriodeEssaiSqlDto.cs @@ -2,33 +2,32 @@ using System.Diagnostics.CodeAnalysis; using espacecollab.backend.infrastructure.sql.dtos.Interfaces; -namespace espacecollab.backend.infrastructure.sql.dtos +namespace espacecollab.backend.infrastructure.sql.dtos; + +public class PeriodeEssaiSqlDto : IGenericIdSqlDto { - public class PeriodeEssaiSqlDto : IGenericIdSqlDto - { - public int Id { get; set; } - public DateTime StartingDate { get; set; } - public DateTime PlannedEndingDate { get; set; } - public DateTime RealEndingDate { get; set; } - public string Comment { get; set; } - public EnumIssueSql Issue { get; set; } - public int CollaborateurId { get; set; } + public int Id { get; set; } + public DateTime StartingDate { get; set; } + public DateTime PlannedEndingDate { get; set; } + public DateTime RealEndingDate { get; set; } + public string Comment { get; set; } + public EnumIssueSql Issue { get; set; } + public int CollaborateurId { get; set; } - [ExcludeFromCodeCoverage] - private PeriodeEssaiSqlDto() - { - Comment = string.Empty; - } + [ExcludeFromCodeCoverage] + private PeriodeEssaiSqlDto() + { + Comment = string.Empty; + } - public PeriodeEssaiSqlDto(int id, DateTime startingDate, DateTime plannedEndingDate, DateTime realEndingDate, string comment, EnumIssueSql issue, int collaborateurId) - { - Id = id; - StartingDate = startingDate; - PlannedEndingDate = plannedEndingDate; - RealEndingDate = realEndingDate; - Comment = comment; - Issue = issue; - CollaborateurId = collaborateurId; - } + public PeriodeEssaiSqlDto(int id, DateTime startingDate, DateTime plannedEndingDate, DateTime realEndingDate, string comment, EnumIssueSql issue, int collaborateurId) + { + Id = id; + StartingDate = startingDate; + PlannedEndingDate = plannedEndingDate; + RealEndingDate = realEndingDate; + Comment = comment; + Issue = issue; + CollaborateurId = collaborateurId; } -} +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/PeriodeEssaiSqlRepository.cs b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/PeriodeEssaiSqlRepository.cs new file mode 100644 index 0000000..201f666 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/PeriodeEssaiSqlRepository.cs @@ -0,0 +1,11 @@ +using espacecollab.backend.infrastructure.interfaces; +using espacecollab.backend.infrastructure.sql.dtos; + +namespace espacecollab.backend.infrastructure.sql.Repository; + +public class PeriodeEssaiSqlRepository: GenericSqlRepository, IPeriodeEssaiRepository +{ + public PeriodeEssaiSqlRepository(MainDbContext context) : base(context) + { + } +} \ No newline at end of file