From 13a0cfd350544b07fd3714e7b55662bea23fbde6 Mon Sep 17 00:00:00 2001 From: "victor.gaborit" Date: Fri, 15 Mar 2024 08:00:09 +0100 Subject: [PATCH] =?UTF-8?q?debut=20utilisation=20des=20methodes=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 | 26 +++++++++---------- .../API/Service/InquiryDataServiceAPI.cs | 20 ++++++++++++++ .../Service/InquiryDataService.cs | 22 ++++++++++++++++ API_SQLuedo/Shared/DataService.cs | 2 +- API_SQLuedo/Shared/IInquiryService.cs | 2 +- API_SQLuedo/Shared/IdataService.cs | 2 +- API_SQLuedo/Shared/InquiryDataService.cs | 22 ++++++++++++++++ 7 files changed, 80 insertions(+), 16 deletions(-) diff --git a/API_SQLuedo/API/Controllers/InquiriesController.cs b/API_SQLuedo/API/Controllers/InquiriesController.cs index fd5b2d3..ee81815 100644 --- a/API_SQLuedo/API/Controllers/InquiriesController.cs +++ b/API_SQLuedo/API/Controllers/InquiriesController.cs @@ -13,12 +13,12 @@ namespace API.Controllers [ApiController] public class InquiriesController : Controller { - private IInquiryDataService _inquiryDataService; + private IdataService _dataService; private readonly ILogger _logger; - public InquiriesController(IInquiryDataService inquiryDataService, ILogger logger) + public InquiriesController(IdataService dataService, ILogger logger) { - _inquiryDataService = inquiryDataService; + _dataService = dataService; _logger = logger; } @@ -27,14 +27,14 @@ namespace API.Controllers [ProducesResponseType(typeof(string), 204)] public IActionResult GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) { - var nbInquiry = _inquiryDataService.GetInquiries(page, number, orderCriteria).Count(); - if (nbInquiry == 0) + var inquiries = ( _dataService.inquiryService.GetInquiries(page, number, orderCriteria)).ToList(); + if (inquiries.Count() == 0) { _logger.LogError("[ERREUR] Aucune enquête trouvée."); return StatusCode(204); } - _logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry); - return Ok(_inquiryDataService.GetInquiries(page, number, orderCriteria)); + _logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", inquiries.Count); + return Ok(inquiries); } [HttpGet("inquiry/{id}")] @@ -45,7 +45,7 @@ namespace API.Controllers try { _logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été trouvé.", id); - return Ok(_inquiryDataService.GetInquiryById(id)); + return Ok(_dataService.inquiryService.GetInquiryById(id)); } catch (ArgumentException) { @@ -62,7 +62,7 @@ namespace API.Controllers try { _logger.LogInformation("[INFORMATION] L'enquête avec le titre {title} a été trouvé.", title); - return Ok(_inquiryDataService.GetInquiryByTitle(title)); + return Ok(_dataService.inquiryService.GetInquiryByTitle(title)); } catch (ArgumentException) { @@ -76,11 +76,11 @@ namespace API.Controllers [ProducesResponseType(typeof(string), 404)] public IActionResult DeleteInquiry(int id) { - var success = _inquiryDataService.DeleteInquiry(id); + var success = _dataService.inquiryService.DeleteInquiry(id); if (success) { _logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été supprimé.", id); - return Ok(_inquiryDataService.DeleteInquiry(id)); + return Ok(_dataService.inquiryService.DeleteInquiry(id)); } else { @@ -100,7 +100,7 @@ namespace API.Controllers return BadRequest(); } _logger.LogInformation("[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}, database - {database}, inquiryTable - {inquiryTable}", dto.Title, dto.Description, dto.IsUser, dto.Database, dto.InquiryTable); - return Created(nameof(GetInquiries), _inquiryDataService.CreateInquiry(dto.Title, dto.Description, dto.IsUser, dto.Database, dto.InquiryTable)); + return Created(nameof(GetInquiries), _dataService.inquiryService.CreateInquiry(dto.Title, dto.Description, dto.IsUser, dto.Database, dto.InquiryTable)); } [HttpPut("inquiry/{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(_inquiryDataService.UpdateInquiry(id, inquiryDTO)); + return Ok(_dataService.inquiryService.UpdateInquiry(id, inquiryDTO)); } _logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id); return NotFound(); diff --git a/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs b/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs index 6248d48..1143162 100644 --- a/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs +++ b/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs @@ -6,6 +6,11 @@ namespace API.Service; public class InquiryDataServiceApi(IInquiryService inquiryService) : IInquiryService { + public Task AddItem(InquiryEntity? item) + { + return inquiryService.AddItem(item); + } + public InquiryEntity CreateInquiry(string title, string description, bool isUser, int tableId, int solutionId) { return inquiryService.CreateInquiry(title, description, isUser, tableId, solutionId); @@ -16,6 +21,11 @@ public class InquiryDataServiceApi(IInquiryService inquiryService return inquiryService.DeleteInquiry(id); } + public Task DeleteItem(int id) + { + return inquiryService.DeleteItem(id); + } + public IEnumerable GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) { var inquiries = inquiryService.GetInquiries(page, number, orderCriteria); @@ -26,8 +36,18 @@ public class InquiryDataServiceApi(IInquiryService inquiryService public InquiryEntity GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title); + public Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) + { + return inquiryService.GetItems(page, count, orderCriteria, filter, valueFilter); + } + public InquiryEntity UpdateInquiry(int id, InquiryEntity inquiry) { return inquiryService.UpdateInquiry(id, inquiry); } + + public Task UpdateItem(int? id, TDto? newItem) where TDto : class + { + return inquiryService.UpdateItem(id, newItem); + } } \ No newline at end of file diff --git a/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs b/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs index 922e3c9..06841a3 100644 --- a/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs +++ b/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs @@ -3,6 +3,7 @@ using Entities; using Microsoft.EntityFrameworkCore; using Model.OrderCriteria; using Shared; +using Shared.ModelToEntities; namespace DbDataManager.Service; @@ -90,4 +91,25 @@ public class InquiryDataService : IInquiryService DbContext.SaveChangesAsync(); return newInquiryEntity; } + + public Task AddItem(InquiryEntity? item) + { + throw new NotImplementedException(); + } + + public Task DeleteItem(int id) + { + throw new NotImplementedException(); + } + + public Task UpdateItem(int? id, TDto? newItem) where TDto : class + { + throw new NotImplementedException(); + } + + public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) + { + var inquiries = await DbContext.GetItemsWithFilter(page, count, orderCriteria, filter, valueFilter); + return inquiries; + } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/DataService.cs b/API_SQLuedo/Shared/DataService.cs index c175c41..09443e4 100644 --- a/API_SQLuedo/Shared/DataService.cs +++ b/API_SQLuedo/Shared/DataService.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Shared { - public class DataService : IdataService where TUser : class + public class DataService : IdataService where TUser : class where TInquiry : class { private UserDbContext _dbContext; public DataService(UserDbContext userDbContext, IUserService userService, ILessonService lessonService, IInquiryService inquiryService, IParagraphService paragrapheService, ISuccessService sucessService) diff --git a/API_SQLuedo/Shared/IInquiryService.cs b/API_SQLuedo/Shared/IInquiryService.cs index 5b5f28b..86cdfd9 100644 --- a/API_SQLuedo/Shared/IInquiryService.cs +++ b/API_SQLuedo/Shared/IInquiryService.cs @@ -2,7 +2,7 @@ namespace Shared; -public interface IInquiryService +public interface IInquiryService : IGenericDataService where TInquiry : class { public IEnumerable GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria); public TInquiry GetInquiryById(int id); diff --git a/API_SQLuedo/Shared/IdataService.cs b/API_SQLuedo/Shared/IdataService.cs index 4198305..b0d90c1 100644 --- a/API_SQLuedo/Shared/IdataService.cs +++ b/API_SQLuedo/Shared/IdataService.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace Shared { - public interface IdataService where TUser : class + public interface IdataService where TUser : class where TInquiry : class { IUserService userService { get; } IInquiryService inquiryService { get; } diff --git a/API_SQLuedo/Shared/InquiryDataService.cs b/API_SQLuedo/Shared/InquiryDataService.cs index 012eb4e..7a99076 100644 --- a/API_SQLuedo/Shared/InquiryDataService.cs +++ b/API_SQLuedo/Shared/InquiryDataService.cs @@ -4,6 +4,7 @@ using Dto; using Model.OrderCriteria; using DbContextLib; using Shared.Mapper; +using Shared.ModelToEntities; namespace Shared; @@ -95,4 +96,25 @@ public class InquiryDataService : IInquiryDataService DbContext.SaveChangesAsync(); return updatingInquiry.FromEntityToDTO(); } + + public Task AddItem(InquiryDTO? item) + { + throw new NotImplementedException(); + } + + public Task DeleteItem(int id) + { + throw new NotImplementedException(); + } + + public Task UpdateItem(int? id, TDto? newItem) where TDto : class + { + throw new NotImplementedException(); + } + + public async Task> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) + { + var inquiries = await DbContext.GetItemsWithFilter(page, count, orderCriteria, filter, valueFilter); + return inquiries.Select(i => i.FromEntityToDTO()); + } }