From e3d510a9e154ded8d65ad43c621d020abfa5d650 Mon Sep 17 00:00:00 2001 From: "victor.gaborit" Date: Fri, 15 Mar 2024 16:42:46 +0100 Subject: [PATCH] =?UTF-8?q?=20utilisation=20des=20m=C3=A9thodes=20d'extens?= =?UTF-8?q?ions=20pour=20les=20enqu=C3=AAtes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Controllers/InquiriesController.cs | 16 ++++++++-------- .../DbDataManager/Service/InquiryDataService.cs | 10 +++++++--- API_SQLuedo/Dto/InquiryDTO.cs | 3 ++- .../Model/OrderCriteria/InquiryOrderCriteria.cs | 2 +- API_SQLuedo/Shared/InquiryDataService.cs | 15 +++++++++------ API_SQLuedo/TestConsoleAPI/Program.cs | 12 ++++++------ 6 files changed, 33 insertions(+), 25 deletions(-) diff --git a/API_SQLuedo/API/Controllers/InquiriesController.cs b/API_SQLuedo/API/Controllers/InquiriesController.cs index 26d6d80..bd7c120 100644 --- a/API_SQLuedo/API/Controllers/InquiriesController.cs +++ b/API_SQLuedo/API/Controllers/InquiriesController.cs @@ -40,12 +40,12 @@ namespace API.Controllers [HttpGet("inquiry/{id:int}")] [ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(string), 404)] - public IActionResult GetInquiryById(int id) + public async Task GetInquiryById(int id) { try { _logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été trouvé.", id); - return Ok(_dataService.inquiryService.GetInquiryById(id)); + return Ok( await _dataService.inquiryService.GetItems(1, 1, null, InquiryOrderCriteria.ById.ToString().Substring(2),id)); } catch (ArgumentException) { @@ -57,12 +57,12 @@ namespace API.Controllers [HttpGet("inquiry/{title:alpha}")] [ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(string), 404)] - public IActionResult GetInquiryByTitle(string title) + public async Task GetInquiryByTitle(string title) { try { _logger.LogInformation("[INFORMATION] L'enquête avec le titre {title} a été trouvé.", title); - return Ok(_dataService.inquiryService.GetInquiryByTitle(title)); + return Ok( await _dataService.inquiryService.GetItems(1, 1, null, InquiryOrderCriteria.ByTitle.ToString().Substring(2), title)); } catch (ArgumentException) { @@ -93,21 +93,21 @@ namespace API.Controllers [HttpPost] [ProducesResponseType(typeof(InquiryDTO), 201)] [ProducesResponseType(typeof(string), 400)] - public IActionResult CreateInquiry([FromBody] InquiryDTO dto) + public async Task CreateInquiry([FromBody] InquiryDTO dto) { if (dto.Title == null || dto.Description == null) { return BadRequest(); } _logger.LogInformation("[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}", dto.Title, dto.Description, dto.IsUser); - return Created(nameof(GetInquiries), _dataService.inquiryService.CreateInquiry(dto.Title, dto.Description, dto.IsUser)); + return Created(nameof(GetInquiries), await _dataService.inquiryService.AddItem(dto)); } [HttpPut("inquiry/{id}")] [ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 404)] - public IActionResult UpdateInquiry(int id, [FromBody] InquiryDTO inquiryDTO) + public async Task UpdateInquiry(int id, [FromBody] InquiryDTO inquiryDTO) { if (id != inquiryDTO.Id) { @@ -122,7 +122,7 @@ namespace API.Controllers if (inquiryDTO != null) { _logger.LogInformation("[INFORMATION] La mise à jour de l'enquête avec l'id {id} a été effectuée", id); - return Ok(_dataService.inquiryService.UpdateInquiry(id, inquiryDTO)); + return Ok( await _dataService.inquiryService.UpdateItem(id, inquiryDTO)); } _logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id); return NotFound(); diff --git a/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs b/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs index acbf0fe..9239f90 100644 --- a/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs +++ b/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs @@ -1,4 +1,5 @@ using DbContextLib; +using Dto; using Entities; using Microsoft.EntityFrameworkCore; using Model.OrderCriteria; @@ -90,17 +91,20 @@ public class InquiryDataService : IInquiryService public Task AddItem(InquiryEntity? item) { - throw new NotImplementedException(); + var inquiry = DbContext.CreateItemAsync(item); + return inquiry; } public Task DeleteItem(int id) { - throw new NotImplementedException(); + var success = DbContext.DeleteItemAsync(id); + return success; } public Task UpdateItem(int? id, TDto? newItem) where TDto : class { - throw new NotImplementedException(); + var inquiry = DbContext.UpdateItemAsync(id, newItem); + return inquiry; } public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) diff --git a/API_SQLuedo/Dto/InquiryDTO.cs b/API_SQLuedo/Dto/InquiryDTO.cs index 5a436ed..b9a857e 100644 --- a/API_SQLuedo/Dto/InquiryDTO.cs +++ b/API_SQLuedo/Dto/InquiryDTO.cs @@ -2,13 +2,14 @@ public class InquiryDTO { - public int Id { get;} + public int Id { get; set; } public string Title { get; set; } public string Description { get; set; } public bool IsUser { get; set; } + public InquiryDTO() { } public InquiryDTO(int id, string title, string description, bool isUser) { diff --git a/API_SQLuedo/Model/OrderCriteria/InquiryOrderCriteria.cs b/API_SQLuedo/Model/OrderCriteria/InquiryOrderCriteria.cs index bc40b5d..88508b5 100644 --- a/API_SQLuedo/Model/OrderCriteria/InquiryOrderCriteria.cs +++ b/API_SQLuedo/Model/OrderCriteria/InquiryOrderCriteria.cs @@ -2,5 +2,5 @@ namespace Model.OrderCriteria; public enum InquiryOrderCriteria { - None, ByTitle, ByDescription, ByIsUser + None, ByTitle, ByDescription, ByIsUser, ById } \ No newline at end of file diff --git a/API_SQLuedo/Shared/InquiryDataService.cs b/API_SQLuedo/Shared/InquiryDataService.cs index 8b9d092..49ee9a8 100644 --- a/API_SQLuedo/Shared/InquiryDataService.cs +++ b/API_SQLuedo/Shared/InquiryDataService.cs @@ -95,19 +95,22 @@ public class InquiryDataService : IInquiryDataService return updatingInquiry.FromEntityToDTO(); } - public Task AddItem(InquiryDTO? item) + public async Task AddItem(InquiryDTO? item) { - throw new NotImplementedException(); + var inquiry = await DbContext.CreateItemAsync(item.FromDTOToEntity()); + return inquiry.FromEntityToDTO(); } - public Task DeleteItem(int id) + public async Task DeleteItem(int id) { - throw new NotImplementedException(); + var sucess = await DbContext.DeleteItemAsync(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 inquiry = await DbContext.UpdateItemAsync(id, newItem); + return inquiry.FromEntityToDTO(); } public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) diff --git a/API_SQLuedo/TestConsoleAPI/Program.cs b/API_SQLuedo/TestConsoleAPI/Program.cs index d30a5d3..a1bde9a 100644 --- a/API_SQLuedo/TestConsoleAPI/Program.cs +++ b/API_SQLuedo/TestConsoleAPI/Program.cs @@ -96,11 +96,11 @@ using (var context = new UserDbContext(options)) } - void SearchInquiryByTitle() + async void SearchInquiryByTitle() { Console.WriteLine("\nVeuillez saisir le titre de l'enquête recherchée : "); var title = Console.ReadLine(); - var inquiry = inquiryController.GetInquiryByTitle(title) as OkObjectResult; + var inquiry = await inquiryController.GetInquiryByTitle(title) as OkObjectResult; if (inquiry == null) { Console.WriteLine("Erreur, la requête n'a rien donné."); @@ -165,11 +165,11 @@ using (var context = new UserDbContext(options)) } - void SearchInquiryById() + async void SearchInquiryById() { Console.WriteLine("\nVeuillez saisir l'identifiant de l'enquête recherchée : "); var id = Console.ReadLine(); - var inquiry = inquiryController.GetInquiryById(int.Parse(id)) as OkObjectResult; + var inquiry = await inquiryController.GetInquiryById(int.Parse(id)) as OkObjectResult; if (inquiry == null) { Console.WriteLine("Erreur, la requête n'a rien donné."); @@ -365,14 +365,14 @@ using (var context = new UserDbContext(options)) } - void UpdateInquiry() + async void UpdateInquiry() { Console.WriteLine("Quel est l'identifiant de l'enquête à mettre à jour ?"); var id = int.Parse(Console.ReadLine()); var res = (inquiryController.GetInquiryById(id)); if (res.GetType() == typeof(OkObjectResult)) { - var user = (res as OkObjectResult).Value as InquiryDTO; + var user = ( await res as OkObjectResult).Value as InquiryDTO; if (user == null) { Console.WriteLine("Erreur, un problème est survenu");