From 660c6d8efbb6b83326e69689c79519e78d7e0b5f Mon Sep 17 00:00:00 2001 From: Louis LABORIE Date: Sat, 9 Mar 2024 10:27:55 +0100 Subject: [PATCH] =?UTF-8?q?Update=20Form=20&=20User=20services=20with=20fi?= =?UTF-8?q?lters=20&=20update=20Form=20&=20User=20controllers=20?= =?UTF-8?q?=F0=9F=94=A5=F0=9F=94=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Controllers/FormulaireController.cs | 33 ++++++++++++------- .../API/Controllers/UserController.cs | 32 ++++++++++++------ .../API_DbDataManager/DbManagerFormulaire.cs | 26 +++++++++++++-- .../API_DbDataManager/DbManagerUser.cs | 22 +++++++++++-- .../API_Services/IFormulaireService.cs | 2 +- .../Verax_API_EF/API_Services/IUserService.cs | 2 +- 6 files changed, 90 insertions(+), 27 deletions(-) diff --git a/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs b/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs index db249bd..72c54b5 100644 --- a/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs +++ b/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs @@ -4,6 +4,7 @@ using Model; using System; using System.Collections.Generic; using System.Threading.Tasks; +using API_Mapping; namespace API.Controllers { @@ -18,34 +19,44 @@ namespace API.Controllers this._form = iform; } - [HttpGet("/forms/{id}")] - public Task> GetAllForm() + [HttpGet("/forms")] + public async Task GetAllForm([FromQuery] int index = 0, [FromQuery] int count = 10, [FromQuery] FormOrderCriteria orderCriteria = FormOrderCriteria.None) { - throw new NotImplementedException(); + var result = (await _form.GetAllForm(index, count, orderCriteria)).Select(f => f.ToDTO()); + if (result == null) + { + return NotFound(); + } + return Ok(result); } [HttpGet("{id}")] - public Task GetById(long id) + public async Task GetById(long id) { - throw new NotImplementedException(); + var result = (await _form.GetById(id)).ToDTO(); + if (result == null) + { + return NotFound(); + } + return Ok(result); } [HttpPost] - public Task CreateForm(Formulaire formulaire) + public async Task CreateForm(Formulaire formulaire) { - throw new NotImplementedException(); + return await _form.CreateForm(formulaire); } [HttpDelete("{id}")] - public Task DeleteForm(long id) + public async Task DeleteForm(long id) { - throw new NotImplementedException(); + return await _form.DeleteForm(id); } [HttpPut("{id}")] - public Task UpdateForm(long id, Formulaire formulaire) + public async Task UpdateForm(long id, Formulaire formulaire) { - throw new NotImplementedException(); + return await _form.UpdateForm(id, formulaire); } } } \ No newline at end of file diff --git a/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs b/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs index 6a90231..cdf20e7 100644 --- a/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs +++ b/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Mvc; using API_Services; using Model; +using API_Mapping; namespace API.Controllers @@ -18,34 +19,45 @@ namespace API.Controllers } [HttpPost("/user")] - public Task Create(User user) + public async Task Create(User user) { - throw new NotImplementedException(); + return await _us.Create(user); } [HttpPut("/user/{pseudo}")] - public Task Update(User user) + public async Task Update(User user) { - throw new NotImplementedException(); + return await _us.Update(user); } [HttpDelete("/user/{pseudo}")] - public Task Delete(string pseudo) + public async Task Delete(string pseudo) { - throw new NotImplementedException(); + return await _us.Delete(pseudo); } [HttpGet("/user/{pseudo}")] - public Task GetByPseudo(string pseudo) + public async Task GetByPseudo(string pseudo) { - throw new NotImplementedException(); + var result = (await _us.GetByPseudo(pseudo)).ToDTO(); + if (result == null) + { + return NotFound(); + } + return Ok(result); } [HttpGet("/users")] - public Task> GetAll() + public async Task GetAll([FromQuery] int index = 0, [FromQuery] int count = 10, [FromQuery] UserOrderCriteria orderCriteria = UserOrderCriteria.None) { - throw new NotImplementedException(); + var result = (await _us.GetAll(index, count, orderCriteria)).Select(u => u.ToDTO()); + if (result == null) + { + return NotFound(); + } + return Ok(result); + } } } diff --git a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs index b459078..2f879cd 100644 --- a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs +++ b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs @@ -15,9 +15,31 @@ public class DbManagerFormulaire : IFormulaireService _context = context; } - public async Task> GetAllForm() + public async Task> GetAllForm(int index, int count, FormOrderCriteria orderCriteria) { - return await Task.FromResult(_context.FormSet.Select(f => f.ToModel()).AsEnumerable()); + List formulaireList = new List(); + switch (orderCriteria) + { + case FormOrderCriteria.None: + formulaireList = _context.FormSet.Select(f => f.ToModel()).ToList(); + break; + case FormOrderCriteria.ByTheme: + formulaireList = _context.FormSet.OrderBy(f => f.Theme).Select(f => f.ToModel()).ToList(); + break; + case FormOrderCriteria.ByLien: + formulaireList = _context.FormSet.OrderBy(f => f.Link).Select(f => f.ToModel()).ToList(); + break; + case FormOrderCriteria.ByDate: + formulaireList = _context.FormSet.OrderBy(f => f.DatePublication).Select(f => f.ToModel()).ToList(); + break; + case FormOrderCriteria.ByPseudo: + formulaireList = _context.FormSet.OrderBy(f => f.Pseudo).Select(f => f.ToModel()).ToList(); + break; + default: + formulaireList = _context.FormSet.Select(f => f.ToModel()).ToList(); + break; + } + return await Task.FromResult(formulaireList.AsEnumerable()); } public async Task GetById(long id) diff --git a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs index e7ce2c4..32326da 100644 --- a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs +++ b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs @@ -60,8 +60,26 @@ public class DbManagerUser: IUserService return await Task.FromResult(entity.ToModel()); } - public async Task> GetAll() + public async Task> GetAll(int index, int count, UserOrderCriteria orderCriteria) { - return await Task.FromResult(_context.UserSet.Select(u => u.ToModel()).AsEnumerable()); + List users = new List(); + switch(orderCriteria) + { + case UserOrderCriteria.None: + users = _context.UserSet.Select(u => u.ToModel()).ToList(); + break; + case UserOrderCriteria.ByFirstName: + users = _context.UserSet.OrderBy(u => u.Prenom).Select(u => u.ToModel()).ToList(); + break; + case UserOrderCriteria.ByLastName: + users = _context.UserSet.OrderBy(u => u.Nom).Select(u => u.ToModel()).ToList(); + break; + default: + users = _context.UserSet.Select(u => u.ToModel()).ToList(); + break; + + } + return await Task.FromResult(users.AsEnumerable()); + } } \ No newline at end of file diff --git a/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs b/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs index e3159c0..9374d8b 100644 --- a/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs +++ b/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs @@ -5,7 +5,7 @@ namespace API_Services; public interface IFormulaireService { - Task> GetAllForm(); + Task> GetAllForm(int index, int count, FormOrderCriteria orderCriteria); Task GetById(long id); diff --git a/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs b/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs index 480cb43..398d436 100644 --- a/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs +++ b/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs @@ -12,7 +12,7 @@ namespace API_Services Task GetByPseudo(string pseudo); - Task> GetAll(); + Task> GetAll(int index, int count, UserOrderCriteria orderCriteria);