From 1107d035cb12af00951cb07bae7843156e82b5a8 Mon Sep 17 00:00:00 2001 From: clchieu Date: Fri, 15 Mar 2024 16:43:25 +0100 Subject: [PATCH] Modification du service de inquiry --- .../API/Controllers/InquiriesController.cs | 2 +- API_SQLuedo/API/Program.cs | 4 +- .../API/Service/InquiryDataServiceAPI.cs | 28 ++--- API_SQLuedo/Shared/InquiryDataService.cs | 101 ------------------ API_SQLuedo/TestConsoleAPI/Program.cs | 9 +- 5 files changed, 25 insertions(+), 119 deletions(-) delete mode 100644 API_SQLuedo/Shared/InquiryDataService.cs diff --git a/API_SQLuedo/API/Controllers/InquiriesController.cs b/API_SQLuedo/API/Controllers/InquiriesController.cs index 045d7a7..25977ab 100644 --- a/API_SQLuedo/API/Controllers/InquiriesController.cs +++ b/API_SQLuedo/API/Controllers/InquiriesController.cs @@ -13,7 +13,7 @@ namespace API.Controllers [ApiController] public class InquiriesController : Controller { - private IInquiryService _inquiryDataService; + private readonly IInquiryService _inquiryDataService; private readonly ILogger _logger; public InquiriesController(IInquiryService inquiryDataService, ILogger logger) diff --git a/API_SQLuedo/API/Program.cs b/API_SQLuedo/API/Program.cs index 338e26c..716256e 100644 --- a/API_SQLuedo/API/Program.cs +++ b/API_SQLuedo/API/Program.cs @@ -24,8 +24,8 @@ builder.Services.AddSwaggerGen(); builder.Services.AddScoped, DbDataManager.Service.UserDataService>(); builder.Services.AddScoped, Shared.UserDataService>(); -builder.Services.AddScoped, DbDataManager.Service.InquiryDataService>(); -builder.Services.AddScoped, Shared.InquiryDataService>(); +builder.Services.AddScoped, InquiryDataService>(); +builder.Services.AddScoped, InquiryDataServiceApi>(); builder.Services.AddScoped, DbDataManager.Service.ParagraphDataService>(); builder.Services.AddScoped, Shared.ParagraphDataService>(); diff --git a/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs b/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs index 7f7ebf4..eb69a91 100644 --- a/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs +++ b/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs @@ -1,14 +1,21 @@ -using Entities; +using Dto; +using Entities; using Model.OrderCriteria; using Shared; +using Shared.Mapper; namespace API.Service; -public class InquiryDataServiceApi(IInquiryService inquiryService) : IInquiryService +public class InquiryDataServiceApi(IInquiryService inquiryService) : IInquiryService { - public InquiryEntity CreateInquiry(string title, string description, bool isUser) + public InquiryDTO UpdateInquiry(int id, InquiryDTO inquiry) { - return inquiryService.CreateInquiry(title, description, isUser); + return inquiryService.UpdateInquiry(id, inquiry.FromDTOToEntity()).FromEntityToDTO(); + } + + public InquiryDTO CreateInquiry(string title, string description, bool isUser) + { + return inquiryService.CreateInquiry(title, description, isUser).FromEntityToDTO(); } public bool DeleteInquiry(int id) @@ -16,18 +23,13 @@ public class InquiryDataServiceApi(IInquiryService inquiryService return inquiryService.DeleteInquiry(id); } - public IEnumerable GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) + public IEnumerable GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) { var inquiries = inquiryService.GetInquiries(page, number, orderCriteria); - return inquiries.Select(i => i).ToList(); + return inquiries.Select(i => i.FromEntityToDTO()).ToList(); } - public InquiryEntity GetInquiryById(int id) => inquiryService.GetInquiryById(id); + public InquiryDTO GetInquiryById(int id) => inquiryService.GetInquiryById(id).FromEntityToDTO(); - public InquiryEntity GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title); - - public InquiryEntity UpdateInquiry(int id, InquiryEntity inquiry) - { - return inquiryService.UpdateInquiry(id, inquiry); - } + public InquiryDTO GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title).FromEntityToDTO(); } \ No newline at end of file diff --git a/API_SQLuedo/Shared/InquiryDataService.cs b/API_SQLuedo/Shared/InquiryDataService.cs deleted file mode 100644 index 691e24a..0000000 --- a/API_SQLuedo/Shared/InquiryDataService.cs +++ /dev/null @@ -1,101 +0,0 @@ -using Entities; -using Microsoft.EntityFrameworkCore; -using Dto; -using Model.OrderCriteria; -using DbContextLib; -using Shared.Mapper; - -namespace Shared; - -public class InquiryDataService : IInquiryDataService -{ - private UserDbContext DbContext { get; set; } - - public InquiryDataService(UserDbContext context) - { - DbContext = context; - context.Database.EnsureCreated(); - } - - public IEnumerable GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) - { - IQueryable query = DbContext.Inquiries.Skip((page - 1) * number).Take(number); - switch (orderCriteria) - { - case InquiryOrderCriteria.None: - break; - case InquiryOrderCriteria.ByTitle: - query = query.OrderBy(s => s.Title); - break; - case InquiryOrderCriteria.ByDescription: - query = query.OrderBy(s => s.Description); - break; - case InquiryOrderCriteria.ByIsUser: - query = query.OrderBy(s => s.IsUser); - break; - default: - break; - } - - var inquiries = query.ToList(); - return inquiries.Select(s => s.FromEntityToDTO()); - } - - public InquiryDTO GetInquiryById(int id) - { - var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Id == id); - if (inquiryEntity == null) - { - throw new ArgumentException("Impossible de trouver l'enquête", nameof(id)); - } - - return inquiryEntity.FromEntityToDTO(); - } - - public InquiryDTO GetInquiryByTitle(string title) - { - var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Title == title); - if (inquiryEntity == null) - { - throw new ArgumentException("Impossible de trouver l'enquête", nameof(title)); - } - - return inquiryEntity.FromEntityToDTO(); - } - - public InquiryDTO CreateInquiry(string title, string description, bool isUser) - { - var newInquiryEntity = new InquiryDTO(title, description, isUser); - DbContext.Inquiries.Add(newInquiryEntity.FromDTOToEntity()); - DbContext.SaveChangesAsync(); - return newInquiryEntity; - } - - public bool DeleteInquiry(int id) - { - var inquiryEntity = DbContext.Inquiries.FirstOrDefault(u => u.Id == id); - if (inquiryEntity == null) - { - return false; - } - - DbContext.Inquiries.Remove(inquiryEntity); - DbContext.SaveChangesAsync(); - return true; - } - - public InquiryDTO UpdateInquiry(int id, InquiryDTO inquiry) - { - var updatingInquiry = DbContext.Inquiries.FirstOrDefault(u => u.Id == id); - if (updatingInquiry == null) - { - throw new ArgumentException("Impossible de trouver l'enquête", nameof(id)); - } - - updatingInquiry.Title = inquiry.Title; - updatingInquiry.Description = inquiry.Description; - updatingInquiry.IsUser = inquiry.IsUser; - DbContext.SaveChangesAsync(); - return updatingInquiry.FromEntityToDTO(); - } -} \ No newline at end of file diff --git a/API_SQLuedo/TestConsoleAPI/Program.cs b/API_SQLuedo/TestConsoleAPI/Program.cs index 19866e9..07e5a52 100644 --- a/API_SQLuedo/TestConsoleAPI/Program.cs +++ b/API_SQLuedo/TestConsoleAPI/Program.cs @@ -1,14 +1,19 @@ // See https://aka.ms/new-console-template for more information using API.Controllers; +using API.Service; using DbContextLib; +using DbDataManager.Service; using Dto; using Microsoft.AspNetCore.Mvc; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Model.OrderCriteria; -using Shared; +using LessonDataService = Shared.LessonDataService; +using ParagraphDataService = Shared.ParagraphDataService; +using SuccessDataService = Shared.SuccessDataService; +using UserDataService = Shared.UserDataService; var connection = new SqliteConnection("DataSource=:memory:"); connection.Open(); @@ -26,7 +31,7 @@ ILogger successLogger = factory.CreateLogger