diff --git a/API_SQLuedo/API/Controllers/UserController.cs b/API_SQLuedo/API/Controllers/UserController.cs index e261d4e..32acebe 100644 --- a/API_SQLuedo/API/Controllers/UserController.cs +++ b/API_SQLuedo/API/Controllers/UserController.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Model.Business; using Model.DTO; +using Model.Mappers; using Services; namespace API.Controllers @@ -90,7 +91,8 @@ namespace API.Controllers } _logger.LogInformation("[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}", dto.Username, dto.Password, dto.Email, dto.IsAdmin); - return Created(nameof(GetUsers), _dataService.UserService.CreateUser(dto.Username, dto.Password, dto.Email, dto.IsAdmin)); + //return Created(nameof(GetUsers), _dataService.UserService.CreateUser(dto.Username, dto.Password, dto.Email, dto.IsAdmin)); + return Created(nameof(GetUsers), _dataService.UserService.AddItem(dto.FromDTOToModel().FromModelToEntity())); } [HttpPut] diff --git a/API_SQLuedo/ModelToEntity/DbDataManager.cs b/API_SQLuedo/ModelToEntity/DbDataManager.cs index 9e87320..2f144f4 100644 --- a/API_SQLuedo/ModelToEntity/DbDataManager.cs +++ b/API_SQLuedo/ModelToEntity/DbDataManager.cs @@ -158,9 +158,13 @@ namespace ModelToEntity throw new NotImplementedException(); } - public Task AddItem(T? item) + public async Task AddItem(T? item) where T : class { - throw new NotImplementedException(); + using (var context = new UserDbContext()) + { + return await context.CreateItemAsync(item); + } + } } diff --git a/API_SQLuedo/ModelToEntity/Extension.cs b/API_SQLuedo/ModelToEntity/Extension.cs index b63e770..63f3b3b 100644 --- a/API_SQLuedo/ModelToEntity/Extension.cs +++ b/API_SQLuedo/ModelToEntity/Extension.cs @@ -15,17 +15,18 @@ namespace ModelToEntity { internal static class Extension { - internal static async Task AddItemAsync(this DbContext context, T? item) where T : class + public static Task CreateItemAsync(this DbContext context, T? item) where T : class { - if (item == null || await context.Set().ContainsAsync(item)) + if (item == null || context.Set().Contains(item)) { - return default(T); + return Task.FromResult(default(T)); } context.Set().Add(item); - await context.SaveChangesAsync(); + context.SaveChangesAsync(); - return item; + return Task.FromResult(item); ; } + } } \ No newline at end of file diff --git a/API_SQLuedo/Services/UserDataService.cs b/API_SQLuedo/Services/UserDataService.cs index f46d725..a1263d8 100644 --- a/API_SQLuedo/Services/UserDataService.cs +++ b/API_SQLuedo/Services/UserDataService.cs @@ -56,9 +56,10 @@ namespace Services return newUserEntity.FromModelToDTO(); } - public async Task AddItem(T? item) + public async Task AddItem(T? item) where T : class { - throw new NotImplementedException(); + var newItem = dataServiceEF.AddItem(item); + return await newItem; } } } diff --git a/API_SQLuedo/Shared/IDataService.cs b/API_SQLuedo/Shared/IDataService.cs index 6080a02..7c3b82b 100644 --- a/API_SQLuedo/Shared/IDataService.cs +++ b/API_SQLuedo/Shared/IDataService.cs @@ -4,7 +4,7 @@ using Model.DTO; namespace Services { - public interface IDataService + public interface IDataService where T : class { IUserDataService UserService { get; } IInquiryDataService InquiryDataService { get; } diff --git a/API_SQLuedo/Shared/IGenericService.cs b/API_SQLuedo/Shared/IGenericService.cs index f34b3f1..fbcfb70 100644 --- a/API_SQLuedo/Shared/IGenericService.cs +++ b/API_SQLuedo/Shared/IGenericService.cs @@ -1,7 +1,7 @@ namespace Shared { - public interface IGenericService + public interface IGenericService where T : class { - public Task AddItem(T? item); + public Task AddItem(T? item) where T : class; } } diff --git a/API_SQLuedo/Shared/IUserDataService.cs b/API_SQLuedo/Shared/IUserDataService.cs index 16cfacc..bf2f2e2 100644 --- a/API_SQLuedo/Shared/IUserDataService.cs +++ b/API_SQLuedo/Shared/IUserDataService.cs @@ -10,7 +10,7 @@ using Model.Business; namespace Services { - public interface IUserDataService : IGenericService + public interface IUserDataService : IGenericService where T : class { public Task> GetUsers(int page, int number); public Task GetUserById(int id);