pull/4/head
Alexandre Ruiz 3 years ago
commit 958e57db93
  1. 0
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/AgencesController.cs
  2. 28
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/BusinessUnitsController.cs
  3. 12
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/FonctionsController.cs
  4. 12
      Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/TechnologiesController.cs
  5. 1
      Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs
  6. 2
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/FonctionApiDto.cs
  7. 4
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/FonctionMapper.cs
  8. 15
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/TechnologieMapper.cs
  9. 8
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/TechnologieApiDto.cs
  10. 2
      Collaborateur_Epa_Back/espacecollab.backend.appservices/AgenceServices.cs
  11. 19
      Collaborateur_Epa_Back/espacecollab.backend.appservices/BusinessUnitServices.cs
  12. 14
      Collaborateur_Epa_Back/espacecollab.backend.appservices/FonctionServices.cs
  13. 14
      Collaborateur_Epa_Back/espacecollab.backend.appservices/TechnologieServices.cs
  14. 3
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IBusinessUnitRepository.cs
  15. 4
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/IFonctionRepository.cs
  16. 8
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.interfaces/ITechnologieRepository.cs
  17. 21
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/FonctionSqlDto.cs
  18. 27
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs
  19. 3
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/BusinessUnitSqlRepository.cs
  20. 11
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/TechnologieSqlRepository.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<BusinessUnitApiDto>
{
private BusinessUnitServices BusinessUnitServices { get; }
public BusinessUnitsController(BusinessUnitServices businessUnitServices) : base(businessUnitServices)
{
BusinessUnitServices = businessUnitServices;
}
[HttpGet("agence/{agenceId:int:min(1)}")]
public ActionResult<IEnumerable<BusinessUnitApiDto>> GetBusinessUnitsByAgence(uint agenceId)
{
IEnumerable<BusinessUnitApiDto> businessUnits = BusinessUnitServices.GetBusinessUnitsByAgence(agenceId);
if (!businessUnits.Any())
return NotFound();
return Ok(businessUnits);
}
}
}

@ -0,0 +1,12 @@
using espacecollab.backend.appservices;
using espacecollab.backend.appservices.dtos;
namespace espacecollab.backend.api.Controllers
{
public class FonctionsController : BaseController<FonctionApiDto>
{
public FonctionsController(FonctionServices fonctionService) : base(fonctionService)
{
}
}
}

@ -0,0 +1,12 @@
using espacecollab.backend.appservices;
using espacecollab.backend.appservices.dtos;
namespace espacecollab.backend.api.Controllers
{
public class TechnologiesController : BaseController<TechnologieApiDto>
{
public TechnologiesController(TechnologieServices technologieServices) : base(technologieServices)
{
}
}
}

@ -33,6 +33,7 @@ internal static class Register
services.AddScoped<IAgenceRepository, AgenceSqlRepository>(); services.AddScoped<IAgenceRepository, AgenceSqlRepository>();
services.AddScoped<IBusinessUnitRepository, BusinessUnitSqlRepository>(); services.AddScoped<IBusinessUnitRepository, BusinessUnitSqlRepository>();
services.AddScoped<IFonctionRepository, FonctionSqlRepository>(); services.AddScoped<IFonctionRepository, FonctionSqlRepository>();
services.AddScoped<ITechnologieRepository, TechnologieSqlRepository>();
services.AddScoped<IPeriodeEssaiRepository, PeriodeEssaiSqlRepository>(); services.AddScoped<IPeriodeEssaiRepository, PeriodeEssaiSqlRepository>();
} }
} }

@ -2,7 +2,7 @@
namespace espacecollab.backend.appservices.dtos; namespace espacecollab.backend.appservices.dtos;
public record FonctionApiDto(uint Id, string Name) : IGenericIdApiDto public record FonctionApiDto(uint Id, string Intitule) : IGenericIdApiDto
{ {
public uint Id { get; set; } = Id; public uint Id { get; set; } = Id;
} }

@ -6,10 +6,10 @@ public static class FonctionMapper
{ {
public static FonctionApiDto ToApi(this FonctionSqlDto fonctionSqlDto) public static FonctionApiDto ToApi(this FonctionSqlDto fonctionSqlDto)
{ {
return new FonctionApiDto((uint)fonctionSqlDto.Id, fonctionSqlDto.Name); return new FonctionApiDto((uint)fonctionSqlDto.Id, fonctionSqlDto.Intitule);
} }
public static FonctionSqlDto ToSql(this FonctionApiDto fonctionApiDto) public static FonctionSqlDto ToSql(this FonctionApiDto fonctionApiDto)
{ {
return new FonctionSqlDto((int)fonctionApiDto.Id, fonctionApiDto.Name); return new FonctionSqlDto((int)fonctionApiDto.Id, fonctionApiDto.Intitule);
} }
} }

@ -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);
}
}

@ -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;
}

@ -5,7 +5,7 @@ using espacecollab.backend.infrastructure.sql.dtos;
namespace espacecollab.backend.appservices; namespace espacecollab.backend.appservices;
public class AgenceService : GenericsServices<AgenceSqlDto, AgenceApiDto> public class AgenceServices : GenericsServices<AgenceSqlDto, AgenceApiDto>
{ {
public AgenceService(IAgenceRepository agenceRepository) public AgenceService(IAgenceRepository agenceRepository)
: base(agenceRepository, AgenceMapper.ToApi, AgenceMapper.ToSql) : base(agenceRepository, AgenceMapper.ToApi, AgenceMapper.ToSql)

@ -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<BusinessUnitSqlDto, BusinessUnitApiDto>
{
private IBusinessUnitRepository BusinessUnitRepository { get; }
public BusinessUnitServices(IBusinessUnitRepository businessUnitRepository)
:base(businessUnitRepository, BusinessUnitMapper.ToApi, BusinessUnitMapper.ToSql)
{}
public IEnumerable<BusinessUnitApiDto> GetBusinessUnitsByAgence(uint agenceId)
{
return BusinessUnitRepository.GetBusinessUnitsByAgence((int)agenceId).Select(bu => bu.ToApi());
}
}

@ -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<FonctionSqlDto, FonctionApiDto>
{
public FonctionServices(IFonctionRepository fonctionRepository)
:base(fonctionRepository, FonctionMapper.ToApi, FonctionMapper.ToSql)
{
}
}

@ -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<TechnologieSqlDto, TechnologieApiDto>
{
public TechnologieServices(ITechnologieRepository technologieRepository)
:base(technologieRepository, TechnologieMapper.ToApi, TechnologieMapper.ToSql)
{
}
}

@ -1,7 +1,8 @@
using espacecollab.backend.infrastructure.sql.dtos; using espacecollab.backend.infrastructure.sql.dtos;
namespace espacecollab.backend.infrastructure.interfaces; namespace espacecollab.backend.infrastructure.interfaces
public interface IBusinessUnitRepository : IGenericRepository<BusinessUnitSqlDto> public interface IBusinessUnitRepository : IGenericRepository<BusinessUnitSqlDto>
{ {
public IList<BusinessUnitSqlDto> GetBusinessUnitsByAgence(int agenceId);
} }

@ -2,7 +2,7 @@
namespace espacecollab.backend.infrastructure.interfaces; namespace espacecollab.backend.infrastructure.interfaces;
public interface IFonctionRepository : IGenericRepository<FonctionSqlDto> public interface IFonctionRepository : IGenericRepository<FonctionSqlDto>
{ {
} }

@ -0,0 +1,8 @@
using espacecollab.backend.infrastructure.sql.dtos;
namespace espacecollab.backend.infrastructure.interfaces
{
public interface ITechnologieRepository : IGenericRepository<TechnologieSqlDto>
{
}
}

@ -1,21 +1,24 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using espacecollab.backend.infrastructure.sql.dtos.Interfaces; using espacecollab.backend.infrastructure.sql.dtos.Interfaces;
namespace espacecollab.backend.infrastructure.sql.dtos; namespace espacecollab.backend.infrastructure.sql.dtos
public class FonctionSqlDto : IGenericIdSqlDto
{ {
public int Id { get; set; } public class FonctionSqlDto : IGenericIdSqlDto
public string Name { get; set; } {
public int Id { get; set; }
public string Intitule { get; set; }
[ExcludeFromCodeCoverage] [ExcludeFromCodeCoverage]
private FonctionSqlDto() private FonctionSqlDto()
{ {
} }
public FonctionSqlDto(int id, string name) public FonctionSqlDto(int id, string intitule)
{ {
Id = id; Id = id;
Name = name; Intitule = intitule;
}
} }
} }

@ -21,16 +21,21 @@ public class MainDbContext : DbContext
.EnableSensitiveDataLogging(); .EnableSensitiveDataLogging();
} }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
modelBuilder.Entity<CollaborateurSqlDto>().Property(p => p.Id).UseMySqlIdentityColumn(); modelBuilder.Entity<BusinessUnitSqlDto>().Property(p => p.Id).UseMySqlIdentityColumn();
modelBuilder modelBuilder.Entity<AgenceSqlDto>().Property(p => p.Id).UseMySqlIdentityColumn();
.Entity<CollaborateurSqlDto>() modelBuilder.Entity<FonctionSqlDto>().Property(p => p.Id).UseMySqlIdentityColumn();
.Property(e => e.Gender) modelBuilder.Entity<TechnologieSqlDto>().Property(p => p.Id).UseMySqlIdentityColumn();
.HasConversion<string>(); modelBuilder.Entity<CollaborateurSqlDto>().Property(p=> p.Id).UseMySqlIdentityColumn();
modelBuilder modelBuilder
.Entity<CollaborateurSqlDto>() .Entity<CollaborateurSqlDto>()
.Property(e => e.Status) .Property(e => e.Gender)
.HasConversion<string>(); .HasConversion<string>();
modelBuilder
.Entity<CollaborateurSqlDto>()
.Property(e => e.Status)
.HasConversion<string>();
}
} }
} }

@ -8,4 +8,7 @@ public class BusinessUnitSqlRepository : GenericSqlRepository<BusinessUnitSqlDto
public BusinessUnitSqlRepository(MainDbContext context) : base(context) public BusinessUnitSqlRepository(MainDbContext context) : base(context)
{ {
} }
public IList<BusinessUnitSqlDto> GetBusinessUnitsByAgence(int agenceId)
=> Context.Set<BusinessUnitSqlDto>().Where(bu => bu.AgenceId == agenceId).ToList();
} }

@ -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<TechnologieSqlDto>, ITechnologieRepository
{
public TechnologieSqlRepository(MainDbContext context) : base(context)
{
}
}
Loading…
Cancel
Save