From d3154b9552ab2ab71a7205c62cce196f3332e002 Mon Sep 17 00:00:00 2001 From: "victor.gaborit" Date: Sat, 24 Feb 2024 10:06:04 +0100 Subject: [PATCH] =?UTF-8?q?r=C3=A9solution=20d'=C3=A9rreur=20sur=20l'impl?= =?UTF-8?q?=C3=A9mentation=20des=20diff=C3=A9rentes=20intefaces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Controllers/InquiryController.cs | 22 +++++++++---------- .../API/Controllers/LessonController.cs | 22 +++++++++---------- API_SQLuedo/API/Controllers/UserController.cs | 4 ++-- API_SQLuedo/API/Program.cs | 6 +++-- API_SQLuedo/API_SQLuedo.sln | 8 ++++++- .../ModelToEntity/ModelToEntity.csproj | 1 + API_SQLuedo/Services/DataBase.cs | 20 +++++++++++++++++ API_SQLuedo/Services/LessonDataService.cs | 12 ++++++++++ .../{Services => Shared}/IDataService.cs | 4 ++-- .../IInquiryDataService.cs | 0 .../ILessonDataService.cs | 0 API_SQLuedo/Shared/Shared.csproj | 4 ++++ 12 files changed, 74 insertions(+), 29 deletions(-) create mode 100644 API_SQLuedo/Services/DataBase.cs create mode 100644 API_SQLuedo/Services/LessonDataService.cs rename API_SQLuedo/{Services => Shared}/IDataService.cs (71%) rename API_SQLuedo/{Services => Shared}/IInquiryDataService.cs (100%) rename API_SQLuedo/{Services => Shared}/ILessonDataService.cs (100%) diff --git a/API_SQLuedo/API/Controllers/InquiryController.cs b/API_SQLuedo/API/Controllers/InquiryController.cs index c6326ad..76efd2f 100644 --- a/API_SQLuedo/API/Controllers/InquiryController.cs +++ b/API_SQLuedo/API/Controllers/InquiryController.cs @@ -10,26 +10,26 @@ namespace API.Controllers [ApiController] public class InquiryController : Controller { - private IDataService _inquiryDataService; + private IDataService _dataService; private readonly ILogger _logger; - public InquiryController(IDataService inquiryDataService) + public InquiryController(IDataService dataService) { - _inquiryDataService = inquiryDataService; + _dataService = _dataService; } [HttpGet("inquiries/{page}/{number}")] public IActionResult GetInquiries(int page, int number) { - var nbInquiry = _inquiryDataService.GetInquiries(page, number).Count(); + var nbInquiry = _dataService.InquiryDataService.GetInquiries(page, number).Count(); if (nbInquiry == 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)); + return Ok(_dataService.InquiryDataService.GetInquiries(page, number)); } [HttpGet("inquiry/id/{id}")] @@ -38,7 +38,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.InquiryDataService.GetInquiryById(id)); } catch (ArgumentException) { @@ -53,7 +53,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.InquiryDataService.GetInquiryByTitle(title)); } catch (ArgumentException) { @@ -65,11 +65,11 @@ namespace API.Controllers [HttpDelete] public IActionResult DeleteInquiry(int id) { - var success = _inquiryDataService.DeleteInquiry(id); + var success = _dataService.InquiryDataService.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.InquiryDataService.DeleteInquiry(id)); } else { @@ -87,7 +87,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.InquiryDataService.CreateInquiry(dto.Title, dto.Description, dto.IsUser, dto.Database, dto.InquiryTable)); } [HttpPut] @@ -106,7 +106,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.InquiryDataService.UpdateInquiry(id, inquiryDTO)); } _logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id); return NotFound(); diff --git a/API_SQLuedo/API/Controllers/LessonController.cs b/API_SQLuedo/API/Controllers/LessonController.cs index 912196e..71490ed 100644 --- a/API_SQLuedo/API/Controllers/LessonController.cs +++ b/API_SQLuedo/API/Controllers/LessonController.cs @@ -10,26 +10,26 @@ namespace API.Controllers [ApiController] public class LessonController : Controller { - private IDataService _lessonDataService; + private IDataService _dataService; private readonly ILogger _logger; - public LessonController(IDataService lessonDataService) + public LessonController(IDataService dataService) { - _lessonDataService = lessonDataService; + _dataService = dataService; } [HttpGet("lessons/{page}/{number}")] public IActionResult GetLessons(int page, int number) { - var nbLesson = _lessonDataService.GetInquiries(page, number).Count(); + var nbLesson = _dataService.LessonDataService.GetLessons(page, number).Count(); if (nbLesson == 0) { _logger.LogError("[ERREUR] Aucune leçon trouvée."); return StatusCode(204); } _logger.LogInformation("[INFORMATION] {nb} Leçon(s) trouvée(s)", nbLesson); - return Ok(_lessonDataService.GetLessons(page, number)); + return Ok(_dataService.LessonDataService.GetLessons(page, number)); } [HttpGet("lesson/id/{id}")] @@ -38,7 +38,7 @@ namespace API.Controllers try { _logger.LogInformation("[INFORMATION] La leçon avec l'id {id} a été trouvé.", id); - return Ok(_lessonDataService.GetLessonById(id)); + return Ok(_dataService.LessonDataService.GetLessonById(id)); } catch (ArgumentException) { @@ -53,7 +53,7 @@ namespace API.Controllers try { _logger.LogInformation("[INFORMATION] La leçon avec le titre {title} a été trouvé.", title); - return Ok(_lessonDataService.GetLessonByTitle(title)); + return Ok(_dataService.LessonDataService.GetLessonByTitle(title)); } catch (ArgumentException) { @@ -65,11 +65,11 @@ namespace API.Controllers [HttpDelete] public IActionResult DeleteLesson(int id) { - var success = _lessonDataService.DeleteLesson(id); + var success = _dataService.LessonDataService.DeleteLesson(id); if (success) { _logger.LogInformation("[INFORMATION] La leçon avec l'id {id} a été supprimé.", id); - return Ok(_lessonDataService.DeleteLesson(id)); + return Ok(_dataService.LessonDataService.DeleteLesson(id)); } else { @@ -87,7 +87,7 @@ namespace API.Controllers return BadRequest(); } _logger.LogInformation("[INFORMATION] Une leçon a été créé : title - {title}, lastPublisher - {publisher}, lastEdit - {lastEdit}", dto.Title, dto.LastPublisher, dto.LastEdit); - return Created(nameof(GetLessons), _lessonDataService.CreateLesson(dto.Title, dto.LastPublisher, dto.LastEdit)); + return Created(nameof(GetLessons), _dataService.LessonDataService.CreateLesson(dto.Title, dto.LastPublisher, dto.LastEdit)); } [HttpPut] @@ -106,7 +106,7 @@ namespace API.Controllers if (lessonDTO != null) { _logger.LogInformation("[INFORMATION] La mise à jour de la leçon avec l'id {id} a été effectuée", id); - return Ok(_lessonDataService.UpdateLesson(id, lessonDTO)); + return Ok(_dataService.LessonDataService.UpdateLesson(id, lessonDTO)); } _logger.LogError("[ERREUR] Aucune leçon trouvée avec l'id {id}.", id); return NotFound(); diff --git a/API_SQLuedo/API/Controllers/UserController.cs b/API_SQLuedo/API/Controllers/UserController.cs index 3e17320..e261d4e 100644 --- a/API_SQLuedo/API/Controllers/UserController.cs +++ b/API_SQLuedo/API/Controllers/UserController.cs @@ -13,11 +13,11 @@ namespace API.Controllers [ApiController] public class UserController : Controller { - private IDataService _dataService; + private IDataService _dataService; private readonly ILogger _logger; - public UserController(IDataService dataService, ILogger logger) + public UserController(IDataService dataService, ILogger logger) { _dataService = dataService; _logger = logger; diff --git a/API_SQLuedo/API/Program.cs b/API_SQLuedo/API/Program.cs index 579f60f..cf07659 100644 --- a/API_SQLuedo/API/Program.cs +++ b/API_SQLuedo/API/Program.cs @@ -3,6 +3,8 @@ using DbContextLib; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; +using Model.DTO; +using Model.Business; using ModelToEntity; using Services; using System.Data.Common; @@ -15,8 +17,8 @@ builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); -builder.Services.AddScoped(); -builder.Services.AddScoped(); +builder.Services.AddScoped, DataBase>(); +builder.Services.AddScoped, DbDataManager>(); builder.Services.AddDbContext(); builder.Services.AddDbContext(options => options.UseInMemoryDatabase("appDb")); builder.Services.AddIdentityApiEndpoints().AddEntityFrameworkStores(); diff --git a/API_SQLuedo/API_SQLuedo.sln b/API_SQLuedo/API_SQLuedo.sln index f9b50ec..0d2bfac 100644 --- a/API_SQLuedo/API_SQLuedo.sln +++ b/API_SQLuedo/API_SQLuedo.sln @@ -17,7 +17,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbContextLib", "DbContextLi EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Services", "Services\Services.csproj", "{9BD3DCBA-AFD8-47FA-B07C-613B53E63968}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModelToEntity", "ModelToEntity\ModelToEntity.csproj", "{8F53CC62-94B3-4F9D-ABF1-F7307A6F27C0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModelToEntity", "ModelToEntity\ModelToEntity.csproj", "{8F53CC62-94B3-4F9D-ABF1-F7307A6F27C0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared", "Shared\Shared.csproj", "{B28FD539-6FE4-4B13-9C1F-D88F4771CC69}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -57,6 +59,10 @@ Global {8F53CC62-94B3-4F9D-ABF1-F7307A6F27C0}.Debug|Any CPU.Build.0 = Debug|Any CPU {8F53CC62-94B3-4F9D-ABF1-F7307A6F27C0}.Release|Any CPU.ActiveCfg = Release|Any CPU {8F53CC62-94B3-4F9D-ABF1-F7307A6F27C0}.Release|Any CPU.Build.0 = Release|Any CPU + {B28FD539-6FE4-4B13-9C1F-D88F4771CC69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B28FD539-6FE4-4B13-9C1F-D88F4771CC69}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B28FD539-6FE4-4B13-9C1F-D88F4771CC69}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B28FD539-6FE4-4B13-9C1F-D88F4771CC69}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/API_SQLuedo/ModelToEntity/ModelToEntity.csproj b/API_SQLuedo/ModelToEntity/ModelToEntity.csproj index 4cd7b1b..472379f 100644 --- a/API_SQLuedo/ModelToEntity/ModelToEntity.csproj +++ b/API_SQLuedo/ModelToEntity/ModelToEntity.csproj @@ -23,6 +23,7 @@ + diff --git a/API_SQLuedo/Services/DataBase.cs b/API_SQLuedo/Services/DataBase.cs new file mode 100644 index 0000000..63778c1 --- /dev/null +++ b/API_SQLuedo/Services/DataBase.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Model.Business; +using Model.DTO; +using Shared; + +namespace Services +{ + public class DataBase : IDataService + { + public IUserDataService UserService { get; } + + public IInquiryDataService InquiryDataService { get; } + + public ILessonDataService LessonDataService { get; } + } +} diff --git a/API_SQLuedo/Services/LessonDataService.cs b/API_SQLuedo/Services/LessonDataService.cs new file mode 100644 index 0000000..a21a5a7 --- /dev/null +++ b/API_SQLuedo/Services/LessonDataService.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Services +{ + public class LessonDataService + { + } +} diff --git a/API_SQLuedo/Services/IDataService.cs b/API_SQLuedo/Shared/IDataService.cs similarity index 71% rename from API_SQLuedo/Services/IDataService.cs rename to API_SQLuedo/Shared/IDataService.cs index 462d8d5..6080a02 100644 --- a/API_SQLuedo/Services/IDataService.cs +++ b/API_SQLuedo/Shared/IDataService.cs @@ -4,9 +4,9 @@ using Model.DTO; namespace Services { - public interface IDataService + public interface IDataService { - IUserDataService UserService { get; } + IUserDataService UserService { get; } IInquiryDataService InquiryDataService { get; } ILessonDataService LessonDataService { get; } } diff --git a/API_SQLuedo/Services/IInquiryDataService.cs b/API_SQLuedo/Shared/IInquiryDataService.cs similarity index 100% rename from API_SQLuedo/Services/IInquiryDataService.cs rename to API_SQLuedo/Shared/IInquiryDataService.cs diff --git a/API_SQLuedo/Services/ILessonDataService.cs b/API_SQLuedo/Shared/ILessonDataService.cs similarity index 100% rename from API_SQLuedo/Services/ILessonDataService.cs rename to API_SQLuedo/Shared/ILessonDataService.cs diff --git a/API_SQLuedo/Shared/Shared.csproj b/API_SQLuedo/Shared/Shared.csproj index fa71b7a..b3751de 100644 --- a/API_SQLuedo/Shared/Shared.csproj +++ b/API_SQLuedo/Shared/Shared.csproj @@ -6,4 +6,8 @@ enable + + + +