Multiples fix pour permettre au front d'utiliser l'API

pull/3/head
Clement FERRERE 3 years ago
parent 209760275b
commit 43f790493d
  1. 1
      Collaborateur_Epa_Back/espacecollab.backend.api/Register.cs
  2. 4
      Collaborateur_Epa_Back/espacecollab.backend.api/Startup.cs
  3. 3
      Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj
  4. 4
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/CollaborateurApiDto.cs
  5. 9
      Collaborateur_Epa_Back/espacecollab.backend.appservices.dtos/Mappers/CollaborateurApiDtoMapper.cs
  6. 4
      Collaborateur_Epa_Back/espacecollab.backend.appservices/GenericsServices.cs
  7. 2
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql.dtos/CollaborateurSqlDto.cs
  8. 6
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/MainDbContext.cs
  9. 6
      Collaborateur_Epa_Back/espacecollab.backend.infrastructure.sql/Repository/GenericSqlRepository.cs

@ -11,6 +11,7 @@ internal static class Register
{ {
public static void InjectDependencies(IServiceCollection services, SqlOption contextOptions) public static void InjectDependencies(IServiceCollection services, SqlOption contextOptions)
{ {
services.AddCors();
services.AddScoped<CollaborateursServices>(); services.AddScoped<CollaborateursServices>();
services.AddScoped<AgenceService>(); services.AddScoped<AgenceService>();

@ -37,7 +37,9 @@ namespace espacecollab.backend.api
{ {
app.UseDeveloperExceptionPage(); app.UseDeveloperExceptionPage();
} }
app.UseCors(
options => options.WithOrigins("http://localhost:4200").AllowAnyMethod().AllowAnyHeader()
);
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(); app.UseSwaggerUI();

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
@ -7,6 +7,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
</ItemGroup> </ItemGroup>

@ -2,8 +2,8 @@
namespace espacecollab.backend.appservices.dtos namespace espacecollab.backend.appservices.dtos
{ {
public record CollaborateurApiDto(uint Id, string Name, string FirstName, DateTime BirthDate, EnumGenreApi Gender, EnumStatutApi Status, int ChildrenNumber, string Address, public record CollaborateurApiDto(uint Id, string Name, string FirstName, string BirthDate, EnumGenreApi Gender, EnumStatutApi Status, int ChildrenNumber, string Address,
string Telephone, string PersonalMail, string ApsideMail, DateTime ResignationDate, int ReferrerId, int BusinessUnitId) : IGenericIdApiDto string Telephone, string PersonalMail, string ApsideMail, string ResignationDate, int ReferrerId, int BusinessUnitId) : IGenericIdApiDto
{ {
public uint Id { get; set; } = Id; public uint Id { get; set; } = Id;
} }

@ -1,4 +1,5 @@
using espacecollab.backend.infrastructure.sql.dtos; using espacecollab.backend.infrastructure.sql.dtos;
using System.Globalization;
namespace espacecollab.backend.appservices.dtos.Mappers namespace espacecollab.backend.appservices.dtos.Mappers
{ {
@ -7,17 +8,17 @@ namespace espacecollab.backend.appservices.dtos.Mappers
public static CollaborateurApiDto ToApi(this CollaborateurSqlDto collaborateurSql) public static CollaborateurApiDto ToApi(this CollaborateurSqlDto collaborateurSql)
{ {
return new CollaborateurApiDto((uint)collaborateurSql.Id, collaborateurSql.Name, collaborateurSql.FirstName, return new CollaborateurApiDto((uint)collaborateurSql.Id, collaborateurSql.Name, collaborateurSql.FirstName,
collaborateurSql.BirthDate, collaborateurSql.Gender.ToEnumGenreApi(), collaborateurSql.Status.ToEnumStatutApi(), collaborateurSql.ChildrenNumber, collaborateurSql.BirthDate.ToShortDateString(), collaborateurSql.Gender.ToEnumGenreApi(), collaborateurSql.Status.ToEnumStatutApi(), collaborateurSql.ChildrenNumber,
collaborateurSql.Address, collaborateurSql.Telephone, collaborateurSql.PersonalMail, collaborateurSql.ApsideMail, collaborateurSql.Address, collaborateurSql.Telephone, collaborateurSql.PersonalMail, collaborateurSql.ApsideMail,
collaborateurSql.ResignationDate, collaborateurSql.ReferrerId, collaborateurSql.BusinessUnitId); collaborateurSql.ResignationDate.ToShortDateString(), collaborateurSql.ReferrerId, collaborateurSql.BusinessUnitId);
} }
public static CollaborateurSqlDto ToSql(this CollaborateurApiDto collaborateurApi) public static CollaborateurSqlDto ToSql(this CollaborateurApiDto collaborateurApi)
{ {
return new CollaborateurSqlDto((int)collaborateurApi.Id, collaborateurApi.Name, collaborateurApi.FirstName, return new CollaborateurSqlDto((int)collaborateurApi.Id, collaborateurApi.Name, collaborateurApi.FirstName,
collaborateurApi.BirthDate, collaborateurApi.Gender.ToEnumGenreSql(), collaborateurApi.Status.ToEnumStatutSql(), collaborateurApi.ChildrenNumber, DateTime.ParseExact(collaborateurApi.BirthDate,"dd/MM/yyyy",CultureInfo.InvariantCulture), collaborateurApi.Gender.ToEnumGenreSql(), collaborateurApi.Status.ToEnumStatutSql(), collaborateurApi.ChildrenNumber,
collaborateurApi.Address, collaborateurApi.Telephone, collaborateurApi.PersonalMail, collaborateurApi.ApsideMail, collaborateurApi.Address, collaborateurApi.Telephone, collaborateurApi.PersonalMail, collaborateurApi.ApsideMail,
collaborateurApi.ResignationDate, collaborateurApi.ReferrerId, collaborateurApi.BusinessUnitId); DateTime.ParseExact(collaborateurApi.ResignationDate, "dd/MM/yyyy", CultureInfo.InvariantCulture), collaborateurApi.ReferrerId, collaborateurApi.BusinessUnitId);
} }
} }
} }

@ -47,10 +47,6 @@ namespace espacecollab.backend.appservices
public TO? Update(TO apiDto) public TO? Update(TO apiDto)
{ {
if (GetById(apiDto.Id) == null)
{
return null;
}
T sqlDto = MapperToSqlDto(apiDto); T sqlDto = MapperToSqlDto(apiDto);
T? sqlDtoValidation = GenericRepository.Update(sqlDto); T? sqlDtoValidation = GenericRepository.Update(sqlDto);

@ -1,11 +1,13 @@
using espacecollab.backend.infrastructure.sql.dtos.Values; using espacecollab.backend.infrastructure.sql.dtos.Values;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using espacecollab.backend.infrastructure.sql.dtos.Interfaces; using espacecollab.backend.infrastructure.sql.dtos.Interfaces;
using System.ComponentModel.DataAnnotations;
namespace espacecollab.backend.infrastructure.sql.dtos namespace espacecollab.backend.infrastructure.sql.dtos
{ {
public class CollaborateurSqlDto : IGenericIdSqlDto public class CollaborateurSqlDto : IGenericIdSqlDto
{ {
[Key]
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string FirstName { get; set; } public string FirstName { get; set; }

@ -7,7 +7,7 @@ namespace espacecollab.backend.infrastructure.sql
public class MainDbContext : DbContext public class MainDbContext : DbContext
{ {
private IOptions<SqlOption> SqlSettings { get; } private IOptions<SqlOption> SqlSettings { get; }
private DbSet<CollaborateurSqlDto>? collaborateur { get; set; } private DbSet<CollaborateurSqlDto>? Collaborateur { get; set; }
public MainDbContext(IOptions<SqlOption> sqlSettings) public MainDbContext(IOptions<SqlOption> sqlSettings)
{ {
@ -17,11 +17,13 @@ namespace espacecollab.backend.infrastructure.sql
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {
optionsBuilder.UseMySql(SqlSettings.Value.ConnectionString, optionsBuilder.UseMySql(SqlSettings.Value.ConnectionString,
ServerVersion.AutoDetect(SqlSettings.Value.ConnectionString)); ServerVersion.AutoDetect(SqlSettings.Value.ConnectionString))
.EnableSensitiveDataLogging();
} }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
modelBuilder.Entity<CollaborateurSqlDto>().Property(p=> p.Id).UseMySqlIdentityColumn();
modelBuilder modelBuilder
.Entity<CollaborateurSqlDto>() .Entity<CollaborateurSqlDto>()
.Property(e => e.Gender) .Property(e => e.Gender)

@ -1,5 +1,6 @@
using espacecollab.backend.infrastructure.interfaces; using espacecollab.backend.infrastructure.interfaces;
using espacecollab.backend.infrastructure.sql.dtos.Interfaces; using espacecollab.backend.infrastructure.sql.dtos.Interfaces;
using Microsoft.EntityFrameworkCore;
namespace espacecollab.backend.infrastructure.sql.Repository namespace espacecollab.backend.infrastructure.sql.Repository
{ {
@ -14,9 +15,9 @@ namespace espacecollab.backend.infrastructure.sql.Repository
public virtual T? Add(T entity) public virtual T? Add(T entity)
{ {
T? addedEntity = Context.Set<T>().Add(entity) as T; Context.Set<T>().Add(entity);
Context.SaveChanges(); Context.SaveChanges();
return addedEntity; return entity;
} }
@ -43,7 +44,6 @@ namespace espacecollab.backend.infrastructure.sql.Repository
{ {
Context.Set<T>().Update(entity); Context.Set<T>().Update(entity);
Context.SaveChanges(); Context.SaveChanges();
return Context.Set<T>().FirstOrDefault(e => e.Id == entity.Id); return Context.Set<T>().FirstOrDefault(e => e.Id == entity.Id);
} }
} }

Loading…
Cancel
Save