diff --git a/API_SQLuedo/API/Controllers/UserController.cs b/API_SQLuedo/API/Controllers/UserController.cs index 28867d6..b90fd11 100644 --- a/API_SQLuedo/API/Controllers/UserController.cs +++ b/API_SQLuedo/API/Controllers/UserController.cs @@ -68,7 +68,7 @@ namespace API.Controllers [ProducesResponseType(typeof(string), 404)] public async Task DeleteUser(int id) { - var success = dataService.userService.DeleteUser(id); + var success = await dataService.userService.DeleteItem(id); if (success) { logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id); @@ -84,19 +84,17 @@ namespace API.Controllers [HttpPost] [ProducesResponseType(typeof(UserDTO), 201)] [ProducesResponseType(typeof(string), 400)] - public IActionResult CreateUser([FromBody] UserDTO dto) + public async Task CreateUser([FromBody] UserDTO dto) { if (dto.Username == null || dto.Password == null || dto.Email == null) { return BadRequest(); } - - // return Ok(userService.CreateUser(username, password, email, isAdmin)); 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)); + await dataService.userService.AddItem(dto)); } [HttpPut("user/{id}")] @@ -122,7 +120,7 @@ namespace API.Controllers { logger.LogInformation("[INFORMATION] La mise à jour de l'utilsiateur avec l'id {id} a été effectuée", id); - return Ok(dataService.userService.UpdateUser(id, userDto)); + return Ok(dataService.userService.UpdateItem(id, userDto)); } logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); diff --git a/API_SQLuedo/API/Service/UserDataServiceAPI.cs b/API_SQLuedo/API/Service/UserDataServiceAPI.cs index ca43ae5..2315b3f 100644 --- a/API_SQLuedo/API/Service/UserDataServiceAPI.cs +++ b/API_SQLuedo/API/Service/UserDataServiceAPI.cs @@ -25,19 +25,22 @@ public class UserDataServiceApi(IUserService userService) : IUserSer public UserEntity CreateUser(string username, string password, string email, bool isAdmin) => userService.CreateUser(username, password, email, isAdmin); - public Task AddItem(UserEntity? item) + public async Task AddItem(UserEntity? item) { - throw new NotImplementedException(); + var user = await userService.AddItem(item); + return user; } - public Task DeleteItem(int id) + public async Task DeleteItem(int id) { - throw new NotImplementedException(); + var sucess = await userService.DeleteItem(id); + return sucess; } - public Task UpdateItem(int? id, TDto? newItem) where TDto : class + public async Task UpdateItem(int? id, TDto? newItem) where TDto : class { - throw new NotImplementedException(); + var user = await userService.UpdateItem(id, newItem); + return user; } public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) diff --git a/API_SQLuedo/DbDataManager/Service/UserDataService.cs b/API_SQLuedo/DbDataManager/Service/UserDataService.cs index 89802f3..263295f 100644 --- a/API_SQLuedo/DbDataManager/Service/UserDataService.cs +++ b/API_SQLuedo/DbDataManager/Service/UserDataService.cs @@ -1,5 +1,7 @@ using DbContextLib; +using Dto; using Entities; +using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using Model.OrderCriteria; using Shared; @@ -93,17 +95,27 @@ public class UserDataService : IUserService public Task AddItem(UserEntity? item) { - throw new NotImplementedException(); + using(var context = new UserDbContext()) + { + var user = context.CreateItemAsync(item); + return user; + } + } public Task DeleteItem(int id) { - throw new NotImplementedException(); + using (var context = new UserDbContext()) + { + var user = context.DeleteItemAsync(id); + return user; + } } public Task UpdateItem(int? id, TDto? newItem) where TDto : class { - throw new NotImplementedException(); + var user = DbContext.UpdateItemAsync(id, newItem); + return user; } public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) diff --git a/API_SQLuedo/Shared/UserDataService.cs b/API_SQLuedo/Shared/UserDataService.cs index 2761375..dc1eb76 100644 --- a/API_SQLuedo/Shared/UserDataService.cs +++ b/API_SQLuedo/Shared/UserDataService.cs @@ -119,19 +119,28 @@ namespace Shared } - public Task AddItem(UserDTO? item) + public async Task AddItem(UserDTO? item) { - throw new NotImplementedException(); + using(var context = new UserDbContext()) + { + var user = await DbContext.CreateItemAsync(item.FromDTOToEntity()); + return user.FromEntityToDTO(); + } } public Task DeleteItem(int id) { - throw new NotImplementedException(); + using (var context = new UserDbContext()) + { + var user = context.DeleteItemAsync(id); + return user; + } } - public Task UpdateItem(int? id, TDto? newItem) where TDto : class + public async Task UpdateItem(int? id, TDto? newItem) where TDto : class { - throw new NotImplementedException(); + var user = await DbContext.UpdateItemAsync(id, newItem); + return user.FromEntityToDTO(); } public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)