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}")]
[ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 404)]
public IActionResult GetInquiryById(int id)
public async Task<IActionResult> GetInquiryById(int id)
{
try
{
_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)
{
@ -57,12 +57,12 @@ namespace API.Controllers
[HttpGet("inquiry/{title:alpha}")]
[ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 404)]
public IActionResult GetInquiryByTitle(string title)
public async Task<IActionResult> GetInquiryByTitle(string title)
{
try
{
_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)
{
@ -93,21 +93,21 @@ namespace API.Controllers
[HttpPost]
[ProducesResponseType(typeof(InquiryDTO), 201)]
[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)
{
return BadRequest();
}
_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}")]
[ProducesResponseType(typeof(InquiryDTO), 200)]
[ProducesResponseType(typeof(string), 400)]
[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)
{
@ -122,7 +122,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(_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);
return NotFound();

@ -1,4 +1,5 @@
using DbContextLib;
using Dto;
using Entities;
using Microsoft.EntityFrameworkCore;
using Model.OrderCriteria;
@ -90,17 +91,20 @@ public class InquiryDataService : IInquiryService<InquiryEntity>
public Task<InquiryEntity?> AddItem(InquiryEntity? item)
{
throw new NotImplementedException();
var inquiry = DbContext.CreateItemAsync<InquiryEntity>(item);
return inquiry;
}
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
{
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)

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

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

@ -95,19 +95,22 @@ public class InquiryDataService : IInquiryDataService
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)

@ -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 : ");
var title = Console.ReadLine();
var inquiry = inquiryController.GetInquiryByTitle(title) as OkObjectResult;
var inquiry = await inquiryController.GetInquiryByTitle(title) as OkObjectResult;
if (inquiry == null)
{
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 : ");
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)
{
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 ?");
var id = int.Parse(Console.ReadLine());
var res = (inquiryController.GetInquiryById(id));
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)
{
Console.WriteLine("Erreur, un problème est survenu");

Loading…
Cancel
Save