Compare commits

...

18 Commits

Author SHA1 Message Date
Victor GABORIT 6dc676ecb2 resolution d'erreurs dans testConsoleAPI
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT 33157a2e13 debut utilisation methode d'extension pour Lesson mais elles ne marchent pas toutes pour le moment
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT 4b1490023d merge depuis master
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT 3d216e05bb Merge branch 'master' into MethodeExtensions
1 year ago
Victor GABORIT f86c66250a merge depuis master
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT bbc9fd9a23 ajout début utilisation methodes d'extension pour lessons
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT 668baf4c85 ajout début utilisation methodes d'extension pour lessons
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT e3d510a9e1 utilisation des méthodes d'extensions pour les enquêtes
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT f6677ef137 merge depuis master pour resolution d'erreur
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT 7192ebc3da merge depuis master
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT e14011ccd4 tentative de résolution avec un problème de référence null
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT 13a0cfd350 debut utilisation des methodes d'extensions pour les enquêtes
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT fdfb090424 utilisation DeleteItem UpdateItem et CreateItem pour CreateUser, DeleteUser, UpdateUser
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT eb019066a3 corrections d'erreurs provoquées pour les tests en console coté API
continuous-integration/drone/push Build is passing Details
1 year ago
Victor GABORIT 9723b9263f utilisation de GetItems pour GetUserByUsername
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT 7e8abf0ba0 resolution de bug sur les différentes routes certaines étaient identique et utilisation getItems pour GetUserById
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT 727311c99b déplacement du fichier Extensions et utilisation de GetItems pour retourner un liste d'utilisateur avec ordre précisé
continuous-integration/drone/push Build is failing Details
1 year ago
Victor GABORIT 98ce833b7c ajout des methodes d'extensions mais elles ne sont pas encore utilisées
continuous-integration/drone/push Build is failing Details
1 year ago

@ -13,41 +13,39 @@ namespace API.Controllers
[ApiController] [ApiController]
public class InquiriesController : Controller public class InquiriesController : Controller
{ {
private readonly IInquiryService<InquiryDTO> _inquiryDataService; private IdataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO> _dataService;
private readonly ILogger<InquiriesController> _logger; private readonly ILogger<InquiriesController> _logger;
public InquiriesController(IdataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO> dataService, ILogger<InquiriesController> logger)
public InquiriesController(IInquiryService<InquiryDTO> inquiryDataService, ILogger<InquiriesController> logger)
{ {
_inquiryDataService = inquiryDataService; _dataService = dataService;
_logger = logger; _logger = logger;
} }
[HttpGet("inquiries/{page:int}/{number:int}/{orderCriteria}")] [HttpGet("inquiries/{page:int}/{number:int}/{orderCriteria}")]
[ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 204)] [ProducesResponseType(typeof(string), 204)]
public IActionResult GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) public async Task<IActionResult> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria)
{ {
var nbInquiry = _inquiryDataService.GetInquiries(page, number, orderCriteria).Count(); var inquiries = ( await _dataService.inquiryService.GetItems(page, number, orderCriteria)).ToList();
if (nbInquiry == 0) if (inquiries.Count() == 0)
{ {
_logger.LogError("[ERREUR] Aucune enquête trouvée."); _logger.LogError("[ERREUR] Aucune enquête trouvée.");
return StatusCode(204); return StatusCode(204);
} }
_logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", inquiries.Count);
_logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry); return Ok(inquiries);
return Ok(_inquiryDataService.GetInquiries(page, number, orderCriteria));
} }
[HttpGet("inquiry/{id:int}")] [HttpGet("inquiry/{id:int}")]
[ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult GetInquiryById(int id) public async Task<IActionResult> GetInquiryById(int id)
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été trouvé.", id); _logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été trouvé.", id);
return Ok(_inquiryDataService.GetInquiryById(id)); return Ok( await _dataService.inquiryService.GetItems(1, 1, null, InquiryOrderCriteria.ById.ToString().Substring(2),id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -59,12 +57,12 @@ namespace API.Controllers
[HttpGet("inquiry/{title:alpha}")] [HttpGet("inquiry/{title:alpha}")]
[ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult GetInquiryByTitle(string title) public async Task<IActionResult> GetInquiryByTitle(string title)
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] L'enquête avec le titre {title} a été trouvé.", title); _logger.LogInformation("[INFORMATION] L'enquête avec le titre {title} a été trouvé.", title);
return Ok(_inquiryDataService.GetInquiryByTitle(title)); return Ok( await _dataService.inquiryService.GetItems(1, 1, null, InquiryOrderCriteria.ByTitle.ToString().Substring(2), title));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -76,13 +74,13 @@ namespace API.Controllers
[HttpDelete("inquiry/{id:int}")] [HttpDelete("inquiry/{id:int}")]
[ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult DeleteInquiry(int id) public async Task<IActionResult> DeleteInquiry(int id)
{ {
var success = _inquiryDataService.DeleteInquiry(id); var success = await _dataService.inquiryService.DeleteItem(id);
if (success) if (success)
{ {
_logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été supprimé.", id); _logger.LogInformation("[INFORMATION] L'enquête avec l'id {id} a été supprimé.", id);
return Ok(_inquiryDataService.DeleteInquiry(id)); return Ok(_dataService.inquiryService.DeleteItem(id));
} }
else else
{ {
@ -94,25 +92,21 @@ namespace API.Controllers
[HttpPost] [HttpPost]
[ProducesResponseType(typeof(InquiryDTO), 201)] [ProducesResponseType(typeof(InquiryDTO), 201)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
public IActionResult CreateInquiry([FromBody] InquiryDTO dto) public async Task<IActionResult> CreateInquiry([FromBody] InquiryDTO dto)
{ {
if (dto.Title == null || dto.Description == null) if (dto.Title == null || dto.Description == null)
{ {
return BadRequest(); return BadRequest();
} }
_logger.LogInformation("[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}", dto.Title, dto.Description, dto.IsUser);
_logger.LogInformation( return Created(nameof(GetInquiries), await _dataService.inquiryService.AddItem(dto));
"[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}",
dto.Title, dto.Description, dto.IsUser);
return Created(nameof(GetInquiries),
_inquiryDataService.CreateInquiry(dto.Title, dto.Description, dto.IsUser));
} }
[HttpPut("inquiry/{id:int}")] [HttpPut("inquiry/{id:int}")]
[ProducesResponseType(typeof(InquiryDTO), 200)] [ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult UpdateInquiry(int id, [FromBody] InquiryDTO inquiryDTO) public async Task<IActionResult> UpdateInquiry(int id, [FromBody] InquiryDTO inquiryDTO)
{ {
if (id != inquiryDTO.Id) if (id != inquiryDTO.Id)
{ {
@ -130,7 +124,7 @@ namespace API.Controllers
if (inquiryDTO != null) if (inquiryDTO != null)
{ {
_logger.LogInformation("[INFORMATION] La mise à jour de l'enquête avec l'id {id} a été effectuée", id); _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( await _dataService.inquiryService.UpdateItem<InquiryDTO>(id, inquiryDTO));
} }
_logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id); _logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id);

@ -13,22 +13,22 @@ namespace API.Controllers
[ApiController] [ApiController]
public class LessonsController : Controller public class LessonsController : Controller
{ {
private readonly ILessonService<LessonDTO> _lessonDataService; private IdataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO> _dataService;
private readonly ILogger<LessonsController> _logger; private readonly ILogger<LessonsController> _logger;
public LessonsController(ILessonService<LessonDTO> lessonDataService, ILogger<LessonsController> logger) public LessonsController(IdataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO> dataService, ILogger<LessonsController> logger)
{ {
_lessonDataService = lessonDataService; _dataService = dataService;
_logger = logger; _logger = logger;
} }
[HttpGet("lessons/{page:int}/{number:int}/{orderCriteria}")] [HttpGet("lessons/{page:int}/{number:int}/{orderCriteria}")]
[ProducesResponseType(typeof(LessonDTO), 200)] [ProducesResponseType(typeof(LessonDTO), 200)]
[ProducesResponseType(typeof(string), 204)] [ProducesResponseType(typeof(string), 204)]
public IActionResult GetLessons(int page, int number, LessonOrderCriteria orderCriteria) public async Task<IActionResult> GetLessons(int page, int number, LessonOrderCriteria orderCriteria)
{ {
var nbLesson = _lessonDataService.GetLessons(page, number, orderCriteria).Count(); var nbLesson = (await _dataService.lessonService.GetItems(page, number, orderCriteria)).Count();
if (nbLesson == 0) if (nbLesson == 0)
{ {
_logger.LogError("[ERREUR] Aucune leçon trouvée."); _logger.LogError("[ERREUR] Aucune leçon trouvée.");
@ -36,18 +36,18 @@ namespace API.Controllers
} }
_logger.LogInformation("[INFORMATION] {nb} Leçon(s) trouvée(s)", nbLesson); _logger.LogInformation("[INFORMATION] {nb} Leçon(s) trouvée(s)", nbLesson);
return Ok(_lessonDataService.GetLessons(page, number, orderCriteria)); return Ok(_dataService.lessonService.GetLessons(page, number, orderCriteria));
} }
[HttpGet("lesson/{id:int}")] [HttpGet("lesson/{id:int}")]
[ProducesResponseType(typeof(LessonDTO), 200)] [ProducesResponseType(typeof(LessonDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult GetLessonById(int id) public async Task<IActionResult> GetLessonById(int id)
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] La leçon avec l'id {id} a été trouvé.", id); _logger.LogInformation("[INFORMATION] La leçon avec l'id {id} a été trouvé.", id);
return Ok(_lessonDataService.GetLessonById(id)); return Ok( await _dataService.lessonService.GetItems(1, 1, null, LessonOrderCriteria.ById.ToString().Substring(2), id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -59,12 +59,12 @@ namespace API.Controllers
[HttpGet("lesson/{title:alpha}")] [HttpGet("lesson/{title:alpha}")]
[ProducesResponseType(typeof(LessonDTO), 200)] [ProducesResponseType(typeof(LessonDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult GetLessonByTitle(string title) public async Task<IActionResult> GetLessonByTitle(string title)
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] La leçon avec le titre {title} a été trouvé.", title); _logger.LogInformation("[INFORMATION] La leçon avec le titre {title} a été trouvé.", title);
return Ok(_lessonDataService.GetLessonByTitle(title)); return Ok(await _dataService.lessonService.GetItems(1, 1, null, LessonOrderCriteria.ByTitle.ToString().Substring(2), title));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -76,13 +76,13 @@ namespace API.Controllers
[HttpDelete("lesson/{id:int}")] [HttpDelete("lesson/{id:int}")]
[ProducesResponseType(typeof(LessonDTO), 200)] [ProducesResponseType(typeof(LessonDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult DeleteLesson(int id) public async Task<IActionResult> DeleteLesson(int id)
{ {
var success = _lessonDataService.DeleteLesson(id); var success = await _dataService.lessonService.DeleteItem(id);
if (success) if (success)
{ {
_logger.LogInformation("[INFORMATION] La leçon avec l'id {id} a été supprimé.", id); _logger.LogInformation("[INFORMATION] La leçon avec l'id {id} a été supprimé.", id);
return Ok(_lessonDataService.DeleteLesson(id)); return Ok();
} }
else else
{ {
@ -94,25 +94,21 @@ namespace API.Controllers
[HttpPost] [HttpPost]
[ProducesResponseType(typeof(LessonDTO), 201)] [ProducesResponseType(typeof(LessonDTO), 201)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
public IActionResult CreateLesson([FromBody] LessonDTO dto) public async Task<IActionResult> CreateLesson([FromBody] LessonDTO dto)
{ {
if (dto.Title == null || dto.LastPublisher == null) if (dto.Title == null || dto.LastPublisher == null)
{ {
return BadRequest(); return BadRequest();
} }
_logger.LogInformation("[INFORMATION] Une leçon a été créé : title - {title}, lastPublisher - {publisher}, lastEdit - {lastEdit}", dto.Title, dto.LastPublisher, dto.LastEdit);
_logger.LogInformation( return Created(nameof(GetLessons), await _dataService.lessonService.AddItem(dto));
"[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));
} }
[HttpPut("lesson/{id:int}")] [HttpPut("lesson/{id:int}")]
[ProducesResponseType(typeof(LessonDTO), 200)] [ProducesResponseType(typeof(LessonDTO), 200)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult UpdateLesson(int id, [FromBody] LessonDTO lessonDTO) public async Task<IActionResult> UpdateLesson(int id, [FromBody] LessonDTO lessonDTO)
{ {
if (id != lessonDTO.Id) if (id != lessonDTO.Id)
{ {
@ -130,7 +126,7 @@ namespace API.Controllers
if (lessonDTO != null) if (lessonDTO != null)
{ {
_logger.LogInformation("[INFORMATION] La mise à jour de la leçon avec l'id {id} a été effectuée", id); _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(await _dataService.lessonService.UpdateItem<LessonDTO>(id, lessonDTO));
} }
_logger.LogError("[ERREUR] Aucune leçon trouvée avec l'id {id}.", id); _logger.LogError("[ERREUR] Aucune leçon trouvée avec l'id {id}.", id);

@ -11,14 +11,14 @@ namespace API.Controllers
[Authorize] [Authorize]
[ApiVersion("1.0")] [ApiVersion("1.0")]
[ApiController] [ApiController]
public class UsersController(ILogger<UsersController> logger, IUserService<UserDTO> userService) : ControllerBase public class UsersController(ILogger<UsersController> logger, IdataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO> _dataService) : ControllerBase
{ {
[HttpGet("users/{page:int}/{number:int}")] [HttpGet("users/{page}/{number}")]
[ProducesResponseType(typeof(UserDTO), 200)] [ProducesResponseType(typeof(UserDTO), 200)]
[ProducesResponseType(typeof(string), 204)] [ProducesResponseType(typeof(string), 204)]
public IActionResult GetUsers(int page, int number, UserOrderCriteria orderCriteria) public async Task<IActionResult> GetUsers(int page, int number, UserOrderCriteria orderCriteria)
{ {
var users = userService.GetUsers(page, number, orderCriteria).ToList(); var users = (await _dataService.userService.GetItems(page, number, orderCriteria)).ToList();
if (users.Count == 0) if (users.Count == 0)
{ {
logger.LogError("[ERREUR] Aucun utilisateur trouvé."); logger.LogError("[ERREUR] Aucun utilisateur trouvé.");
@ -32,12 +32,12 @@ namespace API.Controllers
[HttpGet("user/{id:int}")] [HttpGet("user/{id:int}")]
[ProducesResponseType(typeof(UserDTO), 200)] [ProducesResponseType(typeof(UserDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult GetUserById(int id) public async Task<IActionResult> GetUserById(int id)
{ {
try try
{ {
logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id); logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id);
return Ok(userService.GetUserById(id)); return Ok( await _dataService.userService.GetItems(1, 1, null, UserOrderCriteria.ById.ToString().Substring(2), id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -49,12 +49,12 @@ namespace API.Controllers
[HttpGet("user/{username:alpha}")] [HttpGet("user/{username:alpha}")]
[ProducesResponseType(typeof(UserDTO), 200)] [ProducesResponseType(typeof(UserDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult GetUserByUsername(string username) public async Task<IActionResult> GetUserByUsername(string username)
{ {
try try
{ {
logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username); logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username);
return Ok(userService.GetUserByUsername(username)); return Ok( await _dataService.userService.GetItems(1, 1, null, UserOrderCriteria.ByUsername.ToString().Substring(2) , username));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -63,12 +63,12 @@ namespace API.Controllers
} }
} }
[HttpDelete("user/{id:int}")] [HttpDelete("user/{id}")]
[ProducesResponseType(typeof(UserDTO), 200)] [ProducesResponseType(typeof(UserDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult DeleteUser(int id) public async Task<IActionResult> DeleteUser(int id)
{ {
var success = userService.DeleteUser(id); var success = await _dataService.userService.DeleteItem(id);
if (success) if (success)
{ {
logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id); logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id);
@ -84,26 +84,24 @@ namespace API.Controllers
[HttpPost] [HttpPost]
[ProducesResponseType(typeof(UserDTO), 201)] [ProducesResponseType(typeof(UserDTO), 201)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
public IActionResult CreateUser([FromBody] UserDTO dto) public async Task<IActionResult> CreateUser([FromBody] UserDTO dto)
{ {
if (dto.Username == null || dto.Password == null || dto.Email == null) if (dto.Username == null || dto.Password == null || dto.Email == null)
{ {
return BadRequest(); return BadRequest();
} }
// return Ok(userService.CreateUser(username, password, email, isAdmin));
logger.LogInformation( logger.LogInformation(
"[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}", "[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}",
dto.Username, dto.Password, dto.Email, dto.IsAdmin); dto.Username, dto.Password, dto.Email, dto.IsAdmin);
return Created(nameof(GetUsers), return Created(nameof(GetUsers),
userService.CreateUser(dto.Username, dto.Password, dto.Email, dto.IsAdmin)); await _dataService.userService.AddItem(dto));
} }
[HttpPut("user/{id:int}")] [HttpPut("user/{id}")]
[ProducesResponseType(typeof(UserDTO), 200)] [ProducesResponseType(typeof(UserDTO), 200)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult UpdateUser(int id, [FromBody] UserDTO userDto) public async Task<IActionResult> UpdateUser(int id, [FromBody] UserDTO userDto)
{ {
if (id != userDto.Id) if (id != userDto.Id)
{ {
@ -122,7 +120,7 @@ namespace API.Controllers
{ {
logger.LogInformation("[INFORMATION] La mise à jour de l'utilsiateur avec l'id {id} a été effectuée", logger.LogInformation("[INFORMATION] La mise à jour de l'utilsiateur avec l'id {id} a été effectuée",
id); id);
return Ok(userService.UpdateUser(id, userDto)); return Ok(await _dataService.userService.UpdateItem<UserDTO>(id, userDto));
} }
logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);

@ -19,6 +19,10 @@ builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(); builder.Services.AddSwaggerGen();
//builder.Services.AddScoped<IUserService<UserEntity>, DbDataManager.Service.UserDataService>();
//builder.Services.AddScoped<IUserDataService, Shared.UserDataService>();
builder.Services.AddScoped<IdataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO>, DataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO>>();
builder.Services.AddScoped<IUserService<UserEntity>, UserDataService>(); builder.Services.AddScoped<IUserService<UserEntity>, UserDataService>();
builder.Services.AddScoped<IUserService<UserDTO>, UserDataServiceApi>(); builder.Services.AddScoped<IUserService<UserDTO>, UserDataServiceApi>();

@ -8,6 +8,11 @@ namespace API.Service;
public class InquiryDataServiceApi(IInquiryService<InquiryEntity> inquiryService) : IInquiryService<InquiryDTO> public class InquiryDataServiceApi(IInquiryService<InquiryEntity> inquiryService) : IInquiryService<InquiryDTO>
{ {
public async Task<InquiryDTO?> AddItem(InquiryDTO? item)
{
var inquiry = await inquiryService.AddItem(item.FromDTOToEntity());
return inquiry.FromEntityToDTO();
}
public InquiryDTO UpdateInquiry(int id, InquiryDTO inquiry) public InquiryDTO UpdateInquiry(int id, InquiryDTO inquiry)
{ {
return inquiryService.UpdateInquiry(id, inquiry.FromDTOToEntity()).FromEntityToDTO(); return inquiryService.UpdateInquiry(id, inquiry.FromDTOToEntity()).FromEntityToDTO();
@ -22,14 +27,32 @@ public class InquiryDataServiceApi(IInquiryService<InquiryEntity> inquiryService
{ {
return inquiryService.DeleteInquiry(id); return inquiryService.DeleteInquiry(id);
} }
public Task<bool> DeleteItem(int id)
{
return inquiryService.DeleteItem(id);
}
public IEnumerable<InquiryDTO> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria) public IEnumerable<InquiryDTO> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria)
{ {
var inquiries = inquiryService.GetInquiries(page, number, orderCriteria); var inquiries = inquiryService.GetInquiries(page, number, orderCriteria);
return inquiries.Select(i => i.FromEntityToDTO()).ToList(); return inquiries.Select(i => i.FromEntityToDTO()).ToList();
} }
public InquiryDTO GetInquiryById(int id) => inquiryService.GetInquiryById(id).FromEntityToDTO(); public InquiryDTO GetInquiryById(int id) => inquiryService.GetInquiryById(id).FromEntityToDTO();
public async Task<IEnumerable<InquiryDTO>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)
{
var inquiries = await inquiryService.GetItems(page, count, orderCriteria, filter, valueFilter);
return inquiries.ToList().Select(i => i.FromEntityToDTO());
}
public InquiryEntity UpdateInquiry(int id, InquiryEntity inquiry)
{
return inquiryService.UpdateInquiry(id, inquiry);
}
public async Task<InquiryDTO> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{
var inquiry = await inquiryService.UpdateItem<TDto>(id, newItem);
return inquiry.FromEntityToDTO();
}
public InquiryDTO GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title).FromEntityToDTO(); public InquiryDTO GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title).FromEntityToDTO();
} }

@ -22,10 +22,34 @@ public class LessonDataServiceApi(ILessonService<LessonEntity> lessonService) :
public LessonDTO UpdateLesson(int id, LessonDTO lesson) => public LessonDTO UpdateLesson(int id, LessonDTO lesson) =>
lessonService.UpdateLesson(id, lesson.FromDTOToEntity()).FromEntityToDTO(); lessonService.UpdateLesson(id, lesson.FromDTOToEntity()).FromEntityToDTO();
public LessonDTO UpdateLesson(int id, LessonEntity lesson) => public LessonDTO UpdateLesson(int id, LessonEntity lesson) =>
lessonService.UpdateLesson(id, lesson).FromEntityToDTO(); lessonService.UpdateLesson(id, lesson).FromEntityToDTO();
public LessonDTO CreateLesson(string title, string lastPublisher, DateOnly? lastEdit) => public LessonDTO CreateLesson(string title, string lastPublisher, DateOnly? lastEdit) =>
lessonService.CreateLesson(title, lastPublisher, lastEdit).FromEntityToDTO(); lessonService.CreateLesson(title, lastPublisher, lastEdit).FromEntityToDTO();
public async Task<LessonDTO?> AddItem(LessonDTO? item)
{
var lesson = await lessonService.AddItem(item.FromDTOToEntity());
return lesson.FromEntityToDTO();
}
public async Task<bool> DeleteItem(int id)
{
var succes = await lessonService.DeleteItem(id);
return succes;
}
public async Task<LessonDTO> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{
var lesson = await lessonService.UpdateItem(id, newItem);
return lesson.FromEntityToDTO();
}
public async Task<IEnumerable<LessonDTO>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)
{
var lessons = await lessonService.GetItems(page, count, orderCriteria, filter, valueFilter);
return lessons.ToList().Select(l => l.FromEntityToDTO());
}
} }

@ -22,7 +22,30 @@ public class UserDataServiceApi(IUserService<UserEntity> userService) : IUserSer
public UserDTO UpdateUser(int id, UserDTO user) => public UserDTO UpdateUser(int id, UserDTO user) =>
userService.UpdateUser(id, user.FromDTOToEntity()).FromEntityToDTO(); userService.UpdateUser(id, user.FromDTOToEntity()).FromEntityToDTO();
public UserDTO CreateUser(string username, string password, string email, bool isAdmin) => public UserDTO CreateUser(string username, string password, string email, bool isAdmin) =>
userService.CreateUser(username, password, email, isAdmin).FromEntityToDTO(); userService.CreateUser(username, password, email, isAdmin).FromEntityToDTO();
public async Task<UserDTO?> AddItem(UserDTO item)
{
var user = await userService.AddItem(item.FromDTOToEntity());
return user.FromEntityToDTO();
}
public async Task<bool> DeleteItem(int id)
{
var sucess = await userService.DeleteItem(id);
return sucess;
}
public async Task<UserDTO> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{
var user = await userService.UpdateItem<TDto>(id, newItem);
return user.FromEntityToDTO();
}
public async Task<IEnumerable<UserDTO>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)
{
var usersEntities = await userService.GetItems(page, count, orderCriteria, filter, valueFilter);
return usersEntities.Select(e => e.FromEntityToDTO()).ToList();
}
} }

@ -16,11 +16,8 @@ namespace DbContextLib
public DbSet<SolutionEntity> Solutions { get; set; } public DbSet<SolutionEntity> Solutions { get; set; }
public DbSet<SuccessEntity> Successes { get; set; } public DbSet<SuccessEntity> Successes { get; set; }
public DbSet<NotepadEntity> Notepads { get; set; } public DbSet<NotepadEntity> Notepads { get; set; }
public UserDbContext(DbContextOptions<UserDbContext> options) : base(options) { }
public UserDbContext(DbContextOptions<UserDbContext> options) : base(options) public UserDbContext() : base() { }
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {
if (!optionsBuilder.IsConfigured) if (!optionsBuilder.IsConfigured)

@ -1,8 +1,10 @@
using DbContextLib; using DbContextLib;
using Dto;
using Entities; using Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Model.OrderCriteria; using Model.OrderCriteria;
using Shared; using Shared;
using Shared.ModelToEntities;
namespace DbDataManager.Service; namespace DbDataManager.Service;
@ -100,4 +102,40 @@ public class InquiryDataService : IInquiryService<InquiryEntity>
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return updatingInquiry; return updatingInquiry;
} }
/* public InquiryEntity CreateInquiry(string title, string description, bool isUser)
{
var newInquiryEntity = new InquiryEntity()
{
Title = title,
Description = description,
IsUser = isUser
};
DbContext.Inquiries.Add(newInquiryEntity);
DbContext.SaveChangesAsync();
return newInquiryEntity;
}*/
public Task<InquiryEntity?> AddItem(InquiryEntity? item)
{
var inquiry = DbContext.CreateItemAsync<InquiryEntity>(item);
return inquiry;
}
public Task<bool> DeleteItem(int id)
{
var success = DbContext.DeleteItemAsync<InquiryEntity>(id);
return success;
}
public Task<InquiryEntity> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{
var inquiry = DbContext.UpdateItemAsync<InquiryEntity, TDto>(id, newItem);
return inquiry;
}
public async Task<IEnumerable<InquiryEntity>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)
{
var inquiries = await DbContext.GetItemsWithFilter<InquiryEntity>(page, count, orderCriteria, filter, valueFilter);
return inquiries;
}
} }

@ -1,11 +1,12 @@
using DbContextLib; using DbContextLib;
using Entities; using Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Model.OrderCriteria; using Model.OrderCriteria;
using Shared; using Shared;
using Shared.ModelToEntities;
namespace DbDataManager.Service; namespace DbDataManager.Service;
public class LessonDataService : ILessonService<LessonEntity> public class LessonDataService : ILessonService<LessonEntity>
{ {
private UserDbContext DbContext { get; set; } private UserDbContext DbContext { get; set; }
@ -105,4 +106,40 @@ public class LessonDataService : ILessonService<LessonEntity>
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return newLessonEntity; return newLessonEntity;
} }
public async Task<LessonEntity?> AddItem(LessonEntity? item)
{
using (var context = DbContext = new UserDbContext())
{
var lesson = await context.CreateItemAsync<LessonEntity>(item);
return item;
}
}
public async Task<bool> DeleteItem(int id)
{
using (var context = DbContext = new UserDbContext())
{
var succes = await context.DeleteItemAsync<LessonEntity>(id);
return succes;
}
}
public async Task<LessonEntity> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{
using (var context = DbContext = new UserDbContext())
{
var lesson = await context.UpdateItemAsync<LessonEntity, TDto>(id, newItem);
return lesson;
}
}
public async Task<IEnumerable<LessonEntity>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)
{
using (var context = DbContext = new UserDbContext())
{
var lessons = await context.GetItemsWithFilter<LessonEntity>(page, count, orderCriteria, filter, valueFilter);
return lessons;
}
}
} }

@ -1,7 +1,9 @@
using DbContextLib; using DbContextLib;
using Dto;
using Entities; using Entities;
using Model.OrderCriteria; using Model.OrderCriteria;
using Shared; using Shared;
using Shared.ModelToEntities;
namespace DbDataManager.Service; namespace DbDataManager.Service;
@ -108,4 +110,39 @@ public class UserDataService : IUserService<UserEntity>
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return newUserEntity; return newUserEntity;
} }
public Task<UserEntity?> AddItem(UserEntity? item)
{
using(var context = new UserDbContext())
{
var user = context.CreateItemAsync(item);
return user;
}
}
public Task<bool> DeleteItem(int id)
{
using (var context = new UserDbContext())
{
var user = context.DeleteItemAsync<UserEntity>(id);
return user;
}
}
public Task<UserEntity> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{
var user = DbContext.UpdateItemAsync<UserEntity, TDto>(id, newItem);
return user;
}
public async Task<IEnumerable<UserEntity>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)
{
var user = (await DbContext.GetItemsWithFilter<UserEntity>(page, count, orderCriteria, filter, valueFilter));
if(user == null)
{
throw new ArgumentNullException("il n'y a pas de donnée");
}
return user;
}
} }

@ -7,6 +7,10 @@ public abstract class ContentLessonDTO
public string ContentTitle { get; set; } public string ContentTitle { get; set; }
public int LessonId { get; set; } public int LessonId { get; set; }
protected ContentLessonDTO()
{
}
protected ContentLessonDTO(int id, string contentContent, string contentTitle, int lessonId) protected ContentLessonDTO(int id, string contentContent, string contentTitle, int lessonId)
{ {
Id = id; Id = id;
@ -22,7 +26,5 @@ public abstract class ContentLessonDTO
LessonId = lessonId; LessonId = lessonId;
} }
protected ContentLessonDTO()
{
}
} }

@ -2,15 +2,14 @@
public class InquiryDTO public class InquiryDTO
{ {
public int Id { get; } public int Id { get; set; }
public string Title { get; set; } public string Title { get; set; }
public string Description { get; set; } public string Description { get; set; }
public bool IsUser { get; set; } public bool IsUser { get; set; }
public InquiryDTO() { }
public InquiryDTO(){}
public InquiryDTO(int id, string title, string description, bool isUser) public InquiryDTO(int id, string title, string description, bool isUser)
{ {
Id = id; Id = id;

@ -5,5 +5,6 @@ public enum InquiryOrderCriteria
None, None,
ByTitle, ByTitle,
ByDescription, ByDescription,
ByIsUser ByIsUser,
ById
} }

@ -5,5 +5,6 @@ public enum LessonOrderCriteria
None, None,
ByTitle, ByTitle,
ByLastPublisher, ByLastPublisher,
ByLastEdit ByLastEdit,
ById,
} }

@ -0,0 +1,33 @@
using DbContextLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared
{
public class DataService<TUser, Tlesson, TInquiry, TParagraphe, TSucesss> : IdataService<TUser, Tlesson, TInquiry, TParagraphe, TSucesss> where TUser : class where TInquiry : class where Tlesson : class
{
private UserDbContext _dbContext;
public DataService(UserDbContext userDbContext, IUserService<TUser> userService, ILessonService<Tlesson> lessonService, IInquiryService<TInquiry> inquiryService, IParagraphService<TParagraphe> paragrapheService, ISuccessService<TSucesss> sucessService)
{
this._dbContext = userDbContext;
this.inquiryService = inquiryService;
this.lessonService = lessonService;
this.paragraphService = paragrapheService;
this.successDataService = sucessService;
this.userService = userService;
}
public IUserService<TUser> userService { get; }
public IInquiryService<TInquiry> inquiryService { get; }
public ILessonService<Tlesson> lessonService { get; }
public IParagraphService<TParagraphe> paragraphService { get; }
public ISuccessService<TSucesss> successDataService { get; }
}
}

@ -0,0 +1,130 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared
{
using DbContextLib;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace ModelToEntities
{
public static class Extensions
{
public static Task<T?> CreateItemAsync<T>(this DbContext context, T? item) where T : class
{
if (item == null || context.Set<T>().Contains(item))
{
return Task.FromResult<T?>(null);
}
context.Set<T>().Add(item);
context.SaveChangesAsync();
return Task.FromResult<T?>(item);
}
public static Task<bool> DeleteItemAsync<T>(this DbContext context, int? id) where T : class
{
if (id == null)
{
return Task.FromResult(false);
}
var entity = context.Set<T>().Find(id);
if (entity == null)
{
return Task.FromResult(false);
}
context.Set<T>().Remove(entity);
context.SaveChanges();
return Task.FromResult(true);
}
public static Task<T?> UpdateItemAsync<T, TDto>(this DbContext context, int? id, TDto dto)
where T : class
where TDto : class
{
var entity = context.Set<T>().Find(id);
if (entity == null)
{
throw new ArgumentException("Impossible de trouver l'entité", nameof(id));
}
var primaryKey = context.Model.FindEntityType(typeof(T)).FindPrimaryKey();
var primaryKeyPropertyName = primaryKey.Properties.Select(x => x.Name).Single();
var propertiesToUpdate = typeof(TDto).GetProperties()
.Where(p => p.CanRead && p.CanWrite && p.Name != primaryKeyPropertyName);
foreach (var property in propertiesToUpdate)
{
var value = property.GetValue(dto);
typeof(T).GetProperty(property.Name)?.SetValue(entity, value);
}
context.Entry(entity).State = EntityState.Modified; // Permet d'indiquer en Db que l'entité a été modifiée.
context.SaveChanges();
return Task.FromResult<T?>(entity);
}
public static Task<IEnumerable<T?>> GetItemsWithFilter<T>(this DbContext context,
int page, int count, object orderCriteria, string? filter = null, object? valueProperty = null) where T : class
{
IQueryable<T> query = context.Set<T>().Skip((page - 1) * count).Take(count);
if (valueProperty != null && !string.IsNullOrEmpty(filter))
{
var idProp = typeof(T).GetProperty(filter);
if (idProp != null)
{
var parameter = Expression.Parameter(typeof(T), "entity");
var propertyAccess = Expression.Property(parameter, idProp);
var constant = Expression.Constant(valueProperty);
var equality = Expression.Equal(propertyAccess, constant);
var lambda = Expression.Lambda<Func<T, bool>>(equality, parameter);
var filteredEntity = context.Set<T>().FirstOrDefault(lambda);
if (filteredEntity != null)
{
return Task.FromResult<IEnumerable<T?>>(new List<T?> { filteredEntity });
}
}
return Task.FromResult<IEnumerable<T?>>(null);
}
if (orderCriteria != null && orderCriteria.ToString() != "None")
{
// Ordonnancement
var propertyName = orderCriteria.ToString();
if (propertyName.StartsWith("By"))
{
propertyName = propertyName.Substring(2);
}
var parameterExpression = Expression.Parameter(typeof(T), "entity");
var propertyExpression = Expression.Property(parameterExpression, propertyName);
var lambdaExpression = Expression.Lambda<Func<T, object>>(Expression.Convert(propertyExpression, typeof(object)), parameterExpression);
// Utilisation de la méthode OrderBy
var orderedQuery = Expression.Call(
typeof(Queryable),
"OrderBy",
new Type[] { typeof(T), typeof(object) },
query.Expression,
lambdaExpression
);
query = query.Provider.CreateQuery<T>(orderedQuery);
}
var orderingItem = query.ToList();
return Task.FromResult<IEnumerable<T?>>(orderingItem);
}
}
}
}

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared
{
public interface IGenericDataService<T> where T : class
{
public Task<T?> AddItem(T? item);
public Task<bool> DeleteItem(int id);
public Task<T> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class;
public Task<IEnumerable<T>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null);
}
}

@ -2,7 +2,7 @@
namespace Shared; namespace Shared;
public interface IInquiryService<TInquiry> public interface IInquiryService<TInquiry> : IGenericDataService<TInquiry> where TInquiry : class
{ {
public IEnumerable<TInquiry> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria); public IEnumerable<TInquiry> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria);
public TInquiry GetInquiryById(int id); public TInquiry GetInquiryById(int id);

@ -2,7 +2,7 @@
namespace Shared; namespace Shared;
public interface ILessonService<TLesson> public interface ILessonService<TLesson> : IGenericDataService<TLesson> where TLesson : class
{ {
public IEnumerable<TLesson> GetLessons(int page, int number, LessonOrderCriteria orderCriteria); public IEnumerable<TLesson> GetLessons(int page, int number, LessonOrderCriteria orderCriteria);
public TLesson GetLessonById(int id); public TLesson GetLessonById(int id);

@ -2,7 +2,7 @@
namespace Shared namespace Shared
{ {
public interface IUserService<TUser> public interface IUserService<TUser> : IGenericDataService<TUser> where TUser : class
{ {
public IEnumerable<TUser> GetUsers(int page, int number, UserOrderCriteria orderCriteria); public IEnumerable<TUser> GetUsers(int page, int number, UserOrderCriteria orderCriteria);
public TUser GetUserById(int id); public TUser GetUserById(int id);

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared
{
public interface IdataService<TUser, Tlesson, TInquiry, TParagraphe, TSucesss> where TUser : class where TInquiry : class where Tlesson : class
{
IUserService<TUser> userService { get; }
IInquiryService<TInquiry> inquiryService { get; }
ILessonService<Tlesson> lessonService { get; }
IParagraphService<TParagraphe> paragraphService { get; }
ISuccessService<TSucesss> successDataService { get; }
}
}

@ -11,6 +11,7 @@ public class StubbedContext : UserDbContext
public StubbedContext(DbContextOptions<UserDbContext> options) : base(options) public StubbedContext(DbContextOptions<UserDbContext> options) : base(options)
{ {
} }
public StubbedContext() : base() { }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {

@ -5,11 +5,13 @@ using API.Service;
using DbContextLib; using DbContextLib;
using DbDataManager.Service; using DbDataManager.Service;
using Dto; using Dto;
using Entities;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.Sqlite; using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Model.OrderCriteria; using Model.OrderCriteria;
using Shared;
using Service_LessonDataService = DbDataManager.Service.LessonDataService; using Service_LessonDataService = DbDataManager.Service.LessonDataService;
using Service_ParagraphDataService = DbDataManager.Service.ParagraphDataService; using Service_ParagraphDataService = DbDataManager.Service.ParagraphDataService;
using Service_SuccessDataService = DbDataManager.Service.SuccessDataService; using Service_SuccessDataService = DbDataManager.Service.SuccessDataService;
@ -30,31 +32,29 @@ ILogger<SuccessesController> successLogger = factory.CreateLogger<SuccessesContr
using (var context = new UserDbContext(options)) using (var context = new UserDbContext(options))
{ {
var userController = new UsersController(userLogger, new UserDataServiceApi(new Service_UserDataService(context))); var userController = new UsersController(userLogger, new DataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO>(context, new UserDataServiceApi(new Service_UserDataService(context)), new LessonDataServiceApi(new Service_LessonDataService(context)), new InquiryDataServiceApi(new InquiryDataService(context)), new ParagraphDataServiceApi(new Service_ParagraphDataService(context)), new SuccessDataServiceApi(new Service_SuccessDataService(context))));
var inquiryController = var inquiryController = new InquiriesController(new DataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO>(context, new UserDataServiceApi(new Service_UserDataService(context)), new LessonDataServiceApi(new Service_LessonDataService(context)), new InquiryDataServiceApi(new InquiryDataService(context)), new ParagraphDataServiceApi(new Service_ParagraphDataService(context)), new SuccessDataServiceApi(new Service_SuccessDataService(context))), inquiryLogger);
new InquiriesController(new InquiryDataServiceApi(new InquiryDataService(context)), inquiryLogger);
var paragraphController = var paragraphController =
new ParagraphsController(new ParagraphDataServiceApi(new Service_ParagraphDataService(context)), new ParagraphsController(new ParagraphDataServiceApi(new Service_ParagraphDataService(context)),
paragraphLogger); paragraphLogger);
var lessonController = var lessonController = new LessonsController(new DataService<UserDTO, LessonDTO, InquiryDTO, ParagraphDTO, SuccessDTO>(context, new UserDataServiceApi(new Service_UserDataService(context)), new LessonDataServiceApi(new Service_LessonDataService(context)), new InquiryDataServiceApi(new InquiryDataService(context)), new ParagraphDataServiceApi(new Service_ParagraphDataService(context)), new SuccessDataServiceApi(new Service_SuccessDataService(context))), lessonLogger);
new LessonsController(new LessonDataServiceApi(new Service_LessonDataService(context)), lessonLogger);
var successController = new SuccessesController(new SuccessDataServiceApi(new Service_SuccessDataService(context)), var successController = new SuccessesController(new SuccessDataServiceApi(new Service_SuccessDataService(context)),
successLogger); successLogger);
void PrintUsers() async void PrintUsers()
{ {
Console.WriteLine(); Console.WriteLine();
var users = userController.GetUsers(1, 10, UserOrderCriteria.None) as OkObjectResult; var users = await userController.GetUsers(1, 10, UserOrderCriteria.None) as OkObjectResult;
foreach (var item in users.Value as IEnumerable<UserDTO>) foreach (var item in users.Value as IEnumerable<UserDTO>)
{ {
Console.WriteLine(item); Console.WriteLine(item);
} }
} }
void PrintInquiries() async void PrintInquiries()
{ {
Console.WriteLine(); Console.WriteLine();
var inquiries = inquiryController.GetInquiries(1, 10, InquiryOrderCriteria.None) as OkObjectResult; var inquiries = await inquiryController.GetInquiries(1, 10, InquiryOrderCriteria.None) as OkObjectResult;
foreach (var item in inquiries.Value as IEnumerable<InquiryDTO>) foreach (var item in inquiries.Value as IEnumerable<InquiryDTO>)
{ {
Console.WriteLine(item); Console.WriteLine(item);
@ -71,10 +71,10 @@ using (var context = new UserDbContext(options))
} }
} }
void PrintLessons() async void PrintLessons()
{ {
Console.WriteLine(); Console.WriteLine();
var lessons = lessonController.GetLessons(1, 10, LessonOrderCriteria.None) as OkObjectResult; var lessons = await lessonController.GetLessons(1, 10, LessonOrderCriteria.None) as OkObjectResult;
foreach (var item in lessons.Value as IEnumerable<LessonDTO>) foreach (var item in lessons.Value as IEnumerable<LessonDTO>)
{ {
Console.WriteLine(item); Console.WriteLine(item);
@ -91,11 +91,12 @@ using (var context = new UserDbContext(options))
} }
} }
void SearchUserByUsername() async void SearchUserByUsername()
{ {
Console.WriteLine("\nVeuillez saisir le pseudonyme de l'utilisateur recherché : "); Console.WriteLine("\nVeuillez saisir le pseudonyme de l'utilisateur recherché : ");
var username = Console.ReadLine(); var username = Console.ReadLine();
var user = userController.GetUserByUsername(username) as OkObjectResult; //var user = userController.GetUserByUsername(username) as OkObjectResult;
var user = await userController.GetUserByUsername(username) as OkObjectResult;
if (user == null) if (user == null)
{ {
Console.WriteLine("Erreur, la requête n'a rien donné."); Console.WriteLine("Erreur, la requête n'a rien donné.");
@ -105,11 +106,11 @@ using (var context = new UserDbContext(options))
Console.WriteLine(user.Value as UserDTO); Console.WriteLine(user.Value as UserDTO);
} }
void SearchInquiryByTitle() async void SearchInquiryByTitle()
{ {
Console.WriteLine("\nVeuillez saisir le titre de l'enquête recherchée : "); Console.WriteLine("\nVeuillez saisir le titre de l'enquête recherchée : ");
var title = Console.ReadLine(); var title = Console.ReadLine();
var inquiry = inquiryController.GetInquiryByTitle(title) as OkObjectResult; var inquiry = await inquiryController.GetInquiryByTitle(title) as OkObjectResult;
if (inquiry == null) if (inquiry == null)
{ {
Console.WriteLine("Erreur, la requête n'a rien donné."); Console.WriteLine("Erreur, la requête n'a rien donné.");
@ -133,11 +134,11 @@ using (var context = new UserDbContext(options))
Console.WriteLine(paragraph.Value as ParagraphDTO); Console.WriteLine(paragraph.Value as ParagraphDTO);
} }
void SearchLessonByTitle() async void SearchLessonByTitle()
{ {
Console.WriteLine("\nVeuillez saisir le titre de la leçon recherchée : "); Console.WriteLine("\nVeuillez saisir le titre de la leçon recherchée : ");
var title = Console.ReadLine(); var title = Console.ReadLine();
var lesson = lessonController.GetLessonByTitle(title) as OkObjectResult; var lesson = await lessonController.GetLessonByTitle(title) as OkObjectResult;
if (lesson == null) if (lesson == null)
{ {
Console.WriteLine("Erreur, la requête n'a rien donné."); Console.WriteLine("Erreur, la requête n'a rien donné.");
@ -161,11 +162,11 @@ using (var context = new UserDbContext(options))
Console.WriteLine(success.Value as SuccessDTO); Console.WriteLine(success.Value as SuccessDTO);
} }
void SearchUserById() async void SearchUserById()
{ {
Console.WriteLine("\nVeuillez saisir l'identifiant de l'utilisateur recherché : "); Console.WriteLine("\nVeuillez saisir l'identifiant de l'utilisateur recherché : ");
var id = Console.ReadLine(); var id = Console.ReadLine();
var user = userController.GetUserById(int.Parse(id)) as OkObjectResult; var user = await userController.GetUserById(int.Parse(id)) as OkObjectResult;
if (user == null) if (user == null)
{ {
Console.WriteLine("Erreur, la requête n'a rien donné."); Console.WriteLine("Erreur, la requête n'a rien donné.");
@ -175,11 +176,11 @@ using (var context = new UserDbContext(options))
Console.WriteLine(user.Value as UserDTO); Console.WriteLine(user.Value as UserDTO);
} }
void SearchInquiryById() async void SearchInquiryById()
{ {
Console.WriteLine("\nVeuillez saisir l'identifiant de l'enquête recherchée : "); Console.WriteLine("\nVeuillez saisir l'identifiant de l'enquête recherchée : ");
var id = Console.ReadLine(); 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) if (inquiry == null)
{ {
Console.WriteLine("Erreur, la requête n'a rien donné."); Console.WriteLine("Erreur, la requête n'a rien donné.");
@ -217,11 +218,11 @@ using (var context = new UserDbContext(options))
Console.WriteLine(success.Value as SuccessDTO); Console.WriteLine(success.Value as SuccessDTO);
} }
void SearchLessonById() async void SearchLessonById()
{ {
Console.WriteLine("\nVeuillez saisir l'identifiant de la leçon recherchée : "); Console.WriteLine("\nVeuillez saisir l'identifiant de la leçon recherchée : ");
var id = Console.ReadLine(); var id = Console.ReadLine();
var lesson = lessonController.GetLessonById(int.Parse(id)) as OkObjectResult; var lesson = await lessonController.GetLessonById(int.Parse(id)) as OkObjectResult;
if (lesson == null) if (lesson == null)
{ {
Console.WriteLine("Erreur, la requête n'a rien donné."); Console.WriteLine("Erreur, la requête n'a rien donné.");
@ -336,14 +337,14 @@ using (var context = new UserDbContext(options))
} }
} }
void UpdateUser() async void UpdateUser()
{ {
Console.WriteLine("Quel est l'identifiant de l'utilisateur à mettre à jour ?"); Console.WriteLine("Quel est l'identifiant de l'utilisateur à mettre à jour ?");
var id = int.Parse(Console.ReadLine()); var id = int.Parse(Console.ReadLine());
var res = (userController.GetUserById(id)); var res = (userController.GetUserById(id));
if (res.GetType() == typeof(OkObjectResult)) if (res.GetType() == typeof(OkObjectResult))
{ {
var user = (res as OkObjectResult).Value as UserDTO; var user = (await res as OkObjectResult).Value as UserDTO;
if (user == null) if (user == null)
{ {
Console.WriteLine("Erreur, un problème est survenu"); Console.WriteLine("Erreur, un problème est survenu");
@ -374,14 +375,14 @@ using (var context = new UserDbContext(options))
} }
} }
void UpdateInquiry() async void UpdateInquiry()
{ {
Console.WriteLine("Quel est l'identifiant de l'enquête à mettre à jour ?"); Console.WriteLine("Quel est l'identifiant de l'enquête à mettre à jour ?");
var id = int.Parse(Console.ReadLine()); var id = int.Parse(Console.ReadLine());
var res = (inquiryController.GetInquiryById(id)); var res = (inquiryController.GetInquiryById(id));
if (res.GetType() == typeof(OkObjectResult)) 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) if (user == null)
{ {
Console.WriteLine("Erreur, un problème est survenu"); Console.WriteLine("Erreur, un problème est survenu");
@ -464,14 +465,14 @@ using (var context = new UserDbContext(options))
} }
} }
void UpdateLesson() async void UpdateLesson()
{ {
Console.WriteLine("Quel est l'identifiant de la leçon à mettre à jour ?"); Console.WriteLine("Quel est l'identifiant de la leçon à mettre à jour ?");
var id = int.Parse(Console.ReadLine()); var id = int.Parse(Console.ReadLine());
var res = (lessonController.GetLessonById(id)); var res = (lessonController.GetLessonById(id));
if (res.GetType() == typeof(OkObjectResult)) if (res.GetType() == typeof(OkObjectResult))
{ {
var lesson = (res as OkObjectResult).Value as LessonDTO; var lesson = (await res as OkObjectResult).Value as LessonDTO;
if (lesson == null) if (lesson == null)
{ {
Console.WriteLine("Erreur, un problème est survenu"); Console.WriteLine("Erreur, un problème est survenu");

Loading…
Cancel
Save