résolution d'érreur sur l'implémentation des différentes intefaces

Genericite
Victor GABORIT 1 year ago
parent 08e08687da
commit d3154b9552

@ -10,26 +10,26 @@ namespace API.Controllers
[ApiController]
public class InquiryController : Controller
{
private IDataService _inquiryDataService;
private IDataService<InquiryDTO> _dataService;
private readonly ILogger<UserController> _logger;
public InquiryController(IDataService inquiryDataService)
public InquiryController(IDataService<InquiryDTO> 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();

@ -10,26 +10,26 @@ namespace API.Controllers
[ApiController]
public class LessonController : Controller
{
private IDataService _lessonDataService;
private IDataService<LessonDTO> _dataService;
private readonly ILogger<UserController> _logger;
public LessonController(IDataService lessonDataService)
public LessonController(IDataService<LessonDTO> 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();

@ -13,11 +13,11 @@ namespace API.Controllers
[ApiController]
public class UserController : Controller
{
private IDataService _dataService;
private IDataService<UserDTO?> _dataService;
private readonly ILogger<UserController> _logger;
public UserController(IDataService dataService, ILogger<UserController> logger)
public UserController(IDataService<UserDTO?> dataService, ILogger<UserController> logger)
{
_dataService = dataService;
_logger = logger;

@ -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<IUserDataService, UserDataService>();
builder.Services.AddScoped<IDataServiceEF, DbDataManager>();
builder.Services.AddScoped<IDataService<UserDTO>, DataBase>();
builder.Services.AddScoped<IUserDataService<User>, DbDataManager>();
builder.Services.AddDbContext<DbContext, UserDbContext>();
builder.Services.AddDbContext<WebAPIDbContext>(options => options.UseInMemoryDatabase("appDb"));
builder.Services.AddIdentityApiEndpoints<IdentityUser>().AddEntityFrameworkStores<WebAPIDbContext>();

@ -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

@ -23,6 +23,7 @@
<ProjectReference Include="..\DbContextLib\DbContextLib.csproj" />
<ProjectReference Include="..\EntityFramework\Entities.csproj" />
<ProjectReference Include="..\Model\Model.csproj" />
<ProjectReference Include="..\Shared\Shared.csproj" />
</ItemGroup>
</Project>

@ -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<UserDTO>
{
public IUserDataService<UserDTO?> UserService { get; }
public IInquiryDataService InquiryDataService { get; }
public ILessonDataService LessonDataService { get; }
}
}

@ -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
{
}
}

@ -4,9 +4,9 @@ using Model.DTO;
namespace Services
{
public interface IDataService
public interface IDataService<T>
{
IUserDataService UserService { get; }
IUserDataService<T?> UserService { get; }
IInquiryDataService InquiryDataService { get; }
ILessonDataService LessonDataService { get; }
}

@ -6,4 +6,8 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Model\Model.csproj" />
</ItemGroup>
</Project>

Loading…
Cancel
Save