diff --git a/API_SQLuedo/API/Controllers/UsersController.cs b/API_SQLuedo/API/Controllers/UsersController.cs index 13812b4..dc270d2 100644 --- a/API_SQLuedo/API/Controllers/UsersController.cs +++ b/API_SQLuedo/API/Controllers/UsersController.cs @@ -91,9 +91,17 @@ namespace API.Controllers { return BadRequest(); } + try + { + _logger.LogInformation("[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}", dto.Username, dto.Password, dto.Email, dto.IsAdmin); + var user = await _dataService.UserService.AddItem(dto); + return Created(nameof(GetUsers), user); + } + catch (InvalidOperationException) + { + return StatusCode(409); + } - _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.AddItem(dto)); } [HttpPut] diff --git a/API_SQLuedo/ModelToEntity/DbDataManager.cs b/API_SQLuedo/ModelToEntity/DbDataManager.cs index b82de68..c571461 100644 --- a/API_SQLuedo/ModelToEntity/DbDataManager.cs +++ b/API_SQLuedo/ModelToEntity/DbDataManager.cs @@ -165,7 +165,12 @@ namespace ModelToEntity { using (var context = new UserDbContext()) { - return (await context.CreateItemAsync(item.FromModelToEntity())).FromEntityToModel() ; + var user = await context.CreateItemAsync(item.FromModelToEntity()); + if (user == null) + { + return null; + } + return user.FromEntityToModel() ; } } diff --git a/API_SQLuedo/ModelToEntity/Extension.cs b/API_SQLuedo/ModelToEntity/Extension.cs index b1ea30d..3cc95d0 100644 --- a/API_SQLuedo/ModelToEntity/Extension.cs +++ b/API_SQLuedo/ModelToEntity/Extension.cs @@ -21,7 +21,7 @@ namespace ModelToEntity { if (item == null || context.Set().Contains(item)) { - return Task.FromResult(default(T)); + return Task.FromResult(null); } context.Set().Add(item); diff --git a/API_SQLuedo/Services/UserDataService.cs b/API_SQLuedo/Services/UserDataService.cs index 6a0f952..4ace5ec 100644 --- a/API_SQLuedo/Services/UserDataService.cs +++ b/API_SQLuedo/Services/UserDataService.cs @@ -59,6 +59,10 @@ namespace Services public async Task AddItem(UserDTO? item) { var newItem = await dataServiceEF.AddItem(item.FromDTOToModel()); + if (newItem == null) + { + throw new InvalidOperationException(); + } return newItem.FromModelToDTO(); }