utilisation des méthodes d'extensions pour les enquêtes
continuous-integration/drone/push Build is passing Details

MethodeExtensions
Victor GABORIT 1 year ago
parent f6677ef137
commit e3d510a9e1

@ -40,12 +40,12 @@ namespace API.Controllers
[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(_dataService.inquiryService.GetInquiryById(id)); return Ok( await _dataService.inquiryService.GetItems(1, 1, null, InquiryOrderCriteria.ById.ToString().Substring(2),id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -57,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(_dataService.inquiryService.GetInquiryByTitle(title)); return Ok( await _dataService.inquiryService.GetItems(1, 1, null, InquiryOrderCriteria.ByTitle.ToString().Substring(2), title));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -93,21 +93,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("[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}", dto.Title, dto.Description, dto.IsUser);
return Created(nameof(GetInquiries), _dataService.inquiryService.CreateInquiry(dto.Title, dto.Description, dto.IsUser)); return Created(nameof(GetInquiries), await _dataService.inquiryService.AddItem(dto));
} }
[HttpPut("inquiry/{id}")] [HttpPut("inquiry/{id}")]
[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)
{ {
@ -122,7 +122,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(_dataService.inquiryService.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);
return NotFound(); return NotFound();

@ -1,4 +1,5 @@
using DbContextLib; using DbContextLib;
using Dto;
using Entities; using Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Model.OrderCriteria; using Model.OrderCriteria;
@ -90,17 +91,20 @@ public class InquiryDataService : IInquiryService<InquiryEntity>
public Task<InquiryEntity?> AddItem(InquiryEntity? item) public Task<InquiryEntity?> AddItem(InquiryEntity? item)
{ {
throw new NotImplementedException(); var inquiry = DbContext.CreateItemAsync<InquiryEntity>(item);
return inquiry;
} }
public Task<bool> DeleteItem(int id) public Task<bool> DeleteItem(int id)
{ {
throw new NotImplementedException(); var success = DbContext.DeleteItemAsync<InquiryEntity>(id);
return success;
} }
public Task<InquiryEntity> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class public Task<InquiryEntity> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{ {
throw new NotImplementedException(); 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) public async Task<IEnumerable<InquiryEntity>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)

@ -2,13 +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(int id, string title, string description, bool isUser) public InquiryDTO(int id, string title, string description, bool isUser)
{ {

@ -2,5 +2,5 @@ namespace Model.OrderCriteria;
public enum InquiryOrderCriteria public enum InquiryOrderCriteria
{ {
None, ByTitle, ByDescription, ByIsUser None, ByTitle, ByDescription, ByIsUser, ById
} }

@ -95,19 +95,22 @@ public class InquiryDataService : IInquiryDataService
return updatingInquiry.FromEntityToDTO(); return updatingInquiry.FromEntityToDTO();
} }
public Task<InquiryDTO?> AddItem(InquiryDTO? item) public async Task<InquiryDTO?> AddItem(InquiryDTO? item)
{ {
throw new NotImplementedException(); var inquiry = await DbContext.CreateItemAsync<InquiryEntity>(item.FromDTOToEntity());
return inquiry.FromEntityToDTO();
} }
public Task<bool> DeleteItem(int id) public async Task<bool> DeleteItem(int id)
{ {
throw new NotImplementedException(); var sucess = await DbContext.DeleteItemAsync<InquiryEntity>(id);
return sucess;
} }
public Task<InquiryDTO> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class public async Task<InquiryDTO> UpdateItem<TDto>(int? id, TDto? newItem) where TDto : class
{ {
throw new NotImplementedException(); var inquiry = await DbContext.UpdateItemAsync<InquiryEntity, TDto>(id, newItem);
return inquiry.FromEntityToDTO();
} }
public async Task<IEnumerable<InquiryDTO>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null) public async Task<IEnumerable<InquiryDTO>> GetItems(int page, int count, object? orderCriteria = null, string? filter = null, object? valueFilter = null)

@ -96,11 +96,11 @@ using (var context = new UserDbContext(options))
} }
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é.");
@ -165,11 +165,11 @@ using (var context = new UserDbContext(options))
} }
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é.");
@ -365,14 +365,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");

Loading…
Cancel
Save