doc sur Service

Service
parent f4b6c6bfe1
commit 60183a2d3a

@ -2,25 +2,66 @@ using WF_WebAdmin.Model;
namespace WF_WebAdmin.Service
{
/// <summary>
/// Interface définissant les opérations de gestion des quiz.
/// </summary>
public interface IQuizService
{
/// <summary>
/// Ajoute un quiz.
/// </summary>
/// <param name="quiz">Quiz à ajouter.</param>
public Task addQuiz(Quiz quiz);
/// <summary>
/// Met à jour un quiz existant.
/// </summary>
/// <param name="quiz">Quiz à mettre à jour.</param>
public Task updateQuiz(Quiz quiz);
/// <summary>
/// Supprime un quiz par son identifiant.
/// </summary>
/// <param name="id">Identifiant du quiz à supprimer.</param>
public Task removeQuiz(int id);
/// <summary>
/// Valide un quiz par son identifiant.
/// </summary>
/// <param name="id">Identifiant du quiz à valider.</param>
public Task validateQuiz(int id);
/// <summary>
/// Récupère la liste de tous les quiz.
/// </summary>
/// <returns>Liste de tous les quiz.</returns>
public Task<List<Quiz>> getQuizzes();
/// <summary>
/// Récupère la liste des quiz en attente de validation.
/// </summary>
/// <returns>Liste des quiz non validés.</returns>
public Task<List<Quiz>> getQuizzesToValidate();
/// <summary>
/// Récupère un quiz spécifique par son identifiant.
/// </summary>
/// <param name="id">Identifiant du quiz.</param>
/// <returns>Le quiz correspondant ou null s'il n'existe pas.</returns>
public Task<Quiz> getQuiz(int id);
/// <summary>
/// Récupère une liste paginée de quiz.
/// </summary>
/// <param name="nb">Nombre de quiz par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Liste des quiz correspondant à la pagination.</returns>
public Task<List<Quiz>> getSommeQuiz(int nb, int page);
/// <summary>
/// Récupère le nombre total de quiz enregistrés.
/// </summary>
/// <returns>Nombre total de quiz.</returns>
public Task<int> getNbQuiz();
}
}

@ -2,32 +2,94 @@
namespace WF_WebAdmin.Service
{
/// <summary>
/// Interface définissant les opérations de gestion des citations.
/// </summary>
public interface IQuoteService
{
/// <summary>
/// Ajoute une citation.
/// </summary>
/// <param name="quote">Citation à ajouter.</param>
public Task addQuote(Quote quote);
/// <summary>
/// Supprime une citation.
/// </summary>
/// <param name="quote">Citation à supprimer.</param>
public Task removeQuote(Quote quote);
/// <summary>
/// Valide une citation.
/// </summary>
/// <param name="quote">Citation à valider.</param>
public Task validQuote(Quote quote);
/// <summary>
/// Met à jour une citation existante.
/// </summary>
/// <param name="quote">Citation à mettre à jour.</param>
public Task updateQuote(Quote quote);
/// <summary>
/// Récupère toutes les citations.
/// </summary>
/// <returns>Liste de toutes les citations.</returns>
public Task<List<Quote>> getAllQuote();
/// <summary>
/// Récupère une liste paginée de citations.
/// </summary>
/// <param name="nb">Nombre de citations par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Liste des citations correspondant à la pagination.</returns>
public Task<List<Quote>> getSomeQuote(int nb, int page);
/// <summary>
/// Récupère une citation spécifique par son identifiant.
/// </summary>
/// <param name="id">Identifiant de la citation.</param>
/// <returns>La citation correspondante ou null si elle n'existe pas.</returns>
public Task<Quote> getOnequote(int id);
/// <summary>
/// Recherche des citations en fonction d'un critère.
/// </summary>
/// <param name="reserch">Terme de recherche.</param>
/// <param name="argument">Liste des arguments pour affiner la recherche.</param>
/// <returns>Liste des citations correspondant aux critères.</returns>
public Task<List<Quote>> reserchQuote(string reserch, List<string> argument);
/// <summary>
/// Récupère toutes les citations non validées.
/// </summary>
/// <returns>Liste des citations non validées.</returns>
public Task<List<Quote>> getAllQuoteInvalid();
/// <summary>
/// Récupère une liste paginée de citations non validées.
/// </summary>
/// <param name="nb">Nombre de citations par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Liste des citations non validées correspondant à la pagination.</returns>
public Task<List<Quote>> getSomeQuoteInvalid(int nb, int page);
/// <summary>
/// Récupère le nombre total de citations enregistrées.
/// </summary>
/// <returns>Nombre total de citations.</returns>
public Task<int> getNbQuote();
/// <summary>
/// Récupère la liste des personnages associés aux citations.
/// </summary>
/// <returns>Liste des personnages.</returns>
public Task<List<Character>> getChar();
/// <summary>
/// Récupère la liste des sources associées aux citations.
/// </summary>
/// <returns>Liste des sources.</returns>
public Task<List<Source>> getSrc();
}
}

@ -2,24 +2,68 @@
namespace WF_WebAdmin.Service
{
/// <summary>
/// Interface définissant les opérations de gestion des utilisateurs.
/// </summary>
public interface IUserService
{
/// <summary>
/// Supprime un utilisateur du système.
/// </summary>
/// <param name="user">Utilisateur à supprimer.</param>
public Task removeUser(User user);
/// <summary>
/// Met à jour le rôle d'un utilisateur.
/// </summary>
/// <param name="user">Utilisateur dont le rôle doit être mis à jour.</param>
public Task updateRole(User user);
/// <summary>
/// Rétrograde le rôle d'un utilisateur.
/// </summary>
/// <param name="user">Utilisateur à rétrograder.</param>
public Task downgradeRole(User user);
/// <summary>
/// Met à jour les informations d'un utilisateur.
/// </summary>
/// <param name="user">Utilisateur à mettre à jour.</param>
public Task updateUser(User user);
/// <summary>
/// Récupère la liste complète des utilisateurs.
/// </summary>
/// <returns>Liste des utilisateurs.</returns>
public Task<List<User>> getAllUser();
/// <summary>
/// Récupère une liste paginée d'utilisateurs.
/// </summary>
/// <param name="nb">Nombre d'utilisateurs par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Liste des utilisateurs correspondant à la pagination.</returns>
public Task<List<User>> getSomeUser(int nb, int page);
/// <summary>
/// Récupère un utilisateur spécifique par son identifiant.
/// </summary>
/// <param name="id">Identifiant de l'utilisateur.</param>
/// <returns>L'utilisateur correspondant ou null s'il n'existe pas.</returns>
public Task<User> getOneUser(int id);
/// <summary>
/// Recherche des utilisateurs en fonction d'un critère.
/// </summary>
/// <param name="reserch">Terme de recherche.</param>
/// <param name="args">Liste des arguments pour affiner la recherche.</param>
/// <returns>Liste des utilisateurs correspondant aux critères.</returns>
public Task<List<User>> reserchUsers(string reserch, List<string> args);
/// <summary>
/// Récupère le nombre total d'utilisateurs enregistrés.
/// </summary>
/// <returns>Nombre total d'utilisateurs.</returns>
public Task<int> getNbUser();
}
}

@ -1,18 +1,29 @@
using System.Text.Json;
using WF_WebAdmin.Model;
namespace WF_WebAdmin.Service;
namespace WF_WebAdmin.Service
{
/// <summary>
/// Service de gestion des quiz utilisant un fichier JSON comme stockage de données.
/// </summary>
public class QuizServiceStub : IQuizService
{
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_quiz.json");
/// <summary>
/// Sauvegarde la liste des quiz dans un fichier JSON.
/// </summary>
/// <param name="quizzes">Liste des quiz à sauvegarder.</param>
public async Task saveQuizJson(List<Quiz> quizzes)
{
var json = JsonSerializer.Serialize(quizzes, new JsonSerializerOptions { WriteIndented = true });
await File.WriteAllTextAsync(_jsonFilePath, json);
}
/// <summary>
/// Ajoute un quiz à la liste et le sauvegarde dans le fichier JSON.
/// </summary>
/// <param name="quiz">Quiz à ajouter.</param>
public async Task addQuiz(Quiz quiz)
{
var data = await getQuizzes();
@ -21,6 +32,10 @@ public class QuizServiceStub: IQuizService
await saveQuizJson(data);
}
/// <summary>
/// Met à jour un quiz existant dans la liste et le sauvegarde.
/// </summary>
/// <param name="quiz">Quiz mis à jour.</param>
public async Task updateQuiz(Quiz quiz)
{
var data = await getQuizzes();
@ -39,6 +54,10 @@ public class QuizServiceStub: IQuizService
}
}
/// <summary>
/// Supprime un quiz de la liste et met à jour le fichier JSON.
/// </summary>
/// <param name="id">Identifiant du quiz à supprimer.</param>
public async Task removeQuiz(int id)
{
var data = await getQuizzes();
@ -50,11 +69,19 @@ public class QuizServiceStub: IQuizService
}
}
/// <summary>
/// Valide un quiz (non implémenté).
/// </summary>
/// <param name="id">Identifiant du quiz à valider.</param>
public Task validateQuiz(int id)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère la liste complète des quiz à partir du fichier JSON.
/// </summary>
/// <returns>Liste des quiz.</returns>
public async Task<List<Quiz>> getQuizzes()
{
if (!File.Exists(_jsonFilePath))
@ -67,12 +94,21 @@ public class QuizServiceStub: IQuizService
return JsonSerializer.Deserialize<List<Quiz>>(json) ?? new List<Quiz>();
}
/// <summary>
/// Récupère la liste des quiz non validés.
/// </summary>
/// <returns>Liste des quiz en attente de validation.</returns>
public async Task<List<Quiz>> getQuizzesToValidate()
{
var quizzes = await getQuizzes();
return quizzes.Where(quiz => quiz.IsValid == false).ToList();
}
/// <summary>
/// Récupère un quiz spécifique par son identifiant.
/// </summary>
/// <param name="id">Identifiant du quiz.</param>
/// <returns>Le quiz correspondant ou null s'il n'existe pas.</returns>
public async Task<Quiz> getQuiz(int id)
{
var data = await getQuizzes();
@ -84,6 +120,12 @@ public class QuizServiceStub: IQuizService
return null;
}
/// <summary>
/// Récupère une liste paginée de quiz.
/// </summary>
/// <param name="nb">Nombre de quiz par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Liste des quiz correspondant à la pagination.</returns>
public async Task<List<Quiz>> getSommeQuiz(int nb, int page)
{
var data = await getQuizzes();
@ -98,9 +140,14 @@ public class QuizServiceStub: IQuizService
return data.GetRange((page - 1) * nb, nb);
}
/// <summary>
/// Récupère le nombre total de quiz enregistrés.
/// </summary>
/// <returns>Nombre total de quiz.</returns>
public async Task<int> getNbQuiz()
{
var data = await getQuizzes();
return data.Count;
}
}
}

@ -4,29 +4,30 @@ using Npgsql;
namespace WF_WebAdmin.Service
{
/// <summary>
/// Service de gestion des citations utilisant une base de données PostgreSQL.
/// </summary>
public class QuoteServiceLocal : IQuoteService
{
private readonly string? _connectionString = "Host=localhost;Port=5432;Username=loguichard3;Password=Reglisse15.;Database=dbloguichard3";
/// <summary>
/// Ajoute une nouvelle citation à la base de données PostgreSQL.
/// </summary>
/// <param name="quote">Citation à ajouter.</param>
/// <returns>Un objet <see cref="QuoteDTO"/> représentant la citation ajoutée.</returns>
public async Task<QuoteDTO> AddQuoteAsync(Quote quote)
{
QuoteExtension extension = new QuoteExtension();
QuoteDTO quoteDTO = extension.QuoteToDTO(quote);
// Utilisation de NpgsqlConnection pour PostgreSQL
using (var connection = new NpgsqlConnection(_connectionString))
{
// Définir la requête SQL d'insertion
var commandText = "INSERT INTO Quote (content, langue, reason, id_source, id_caracter, id_user_verif, img_path) " +
"VALUES (@content, @langue, @reason, @source, @character, @user, @img_path)";
// Créer une commande Npgsql
var command = new NpgsqlCommand(commandText, connection);
/*
// Ajouter des paramètres à la commande
command.Parameters.AddWithValue("@content", quote.Content);
@ -38,32 +39,28 @@ namespace WF_WebAdmin.Service
command.Parameters.AddWithValue("@img_path", quote.ImgPath);
*/
try
{
// Ouvrir la connexion à la base de données
await connection.OpenAsync();
// Exécuter la commande d'insertion
await command.ExecuteNonQueryAsync();
}
catch (Exception ex)
{
// Gérer les erreurs ici (par exemple, afficher ou enregistrer les erreurs)
Console.WriteLine($"Une erreur est survenue lors de l'ajout de la citation : {ex.Message}");
}
finally
{
// Fermer la connexion (automatiquement géré avec `using`, mais ajouté pour explicitement montrer le processus)
await connection.CloseAsync();
}
}
// Retourner l'objet DTO pour que vous puissiez l'utiliser ailleurs dans votre application
return quoteDTO;
}
/// <summary>
/// Supprime une citation de la base de données.
/// </summary>
/// <param name="quote">Citation à supprimer.</param>
public Task RemoveQuote(Quote quote)
{
QuoteExtension extension = new QuoteExtension();
@ -72,6 +69,10 @@ namespace WF_WebAdmin.Service
return Task.FromResult(quoteDTO);
}
/// <summary>
/// Valide une citation.
/// </summary>
/// <param name="quote">Citation à valider.</param>
public Task validQuote(Quote quote)
{
QuoteExtension extension = new QuoteExtension();
@ -80,6 +81,10 @@ namespace WF_WebAdmin.Service
return Task.FromResult(quoteDTO);
}
/// <summary>
/// Met à jour une citation existante.
/// </summary>
/// <param name="quote">Citation mise à jour.</param>
public Task updateQuote(Quote quote)
{
QuoteExtension extension = new QuoteExtension();
@ -88,61 +93,89 @@ namespace WF_WebAdmin.Service
return Task.FromResult(quoteDTO);
}
/// <summary>
/// Ajoute une citation (non implémenté).
/// </summary>
public Task addQuote(Quote quote)
{
throw new NotImplementedException();
}
/// <summary>
/// Supprime une citation (non implémenté).
/// </summary>
public Task removeQuote(Quote quote)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère toutes les citations (non implémenté).
/// </summary>
public Task<List<Quote>> getAllQuote()
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère un ensemble de citations paginées (non implémenté).
/// </summary>
public Task<List<Quote>> getSomeQuote(int nb, int page)
{
throw new NotImplementedException();
}
/// <summary>
/// Recherche des citations selon des critères spécifiques (non implémenté).
/// </summary>
public Task<List<Quote>> reserchQuote(string reserch, List<string> argument)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère toutes les citations invalides (non implémenté).
/// </summary>
public Task<List<Quote>> getAllQuoteInvalid()
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère une liste paginée de citations invalides (non implémenté).
/// </summary>
public Task<List<Quote>> getSomeQuoteInvalid(int nb, int page)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère une citation spécifique en fonction de son ID (non implémenté).
/// </summary>
public Task<Quote> getOnequote(int id)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère le nombre total de citations enregistrées (non implémenté).
/// </summary>
public Task<int> getNbQuote()
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère la liste des personnages (non implémenté).
/// </summary>
public Task<List<Character>> getChar()
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère la liste des sources (non implémenté).
/// </summary>
public Task<List<Source>> getSrc()
{
throw new NotImplementedException();

@ -3,18 +3,29 @@ using WF_WebAdmin.Model;
namespace WF_WebAdmin.Service;
/// <summary>
/// Service de gestion des citations utilisant un fichier JSON comme stockage.
/// </summary>
public class QuoteServiceStub : IQuoteService
{
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataQuote.json");
private readonly string _char = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataCaracter.json");
private readonly string _src = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataSource.json");
/// <summary>
/// Sauvegarde la liste des citations dans le fichier JSON.
/// </summary>
/// <param name="quotes">Liste des citations à sauvegarder.</param>
public async Task saveQuoteJson(List<Quote> quotes)
{
var json = JsonSerializer.Serialize(quotes, new JsonSerializerOptions { WriteIndented = true });
await File.WriteAllTextAsync(_jsonFilePath, json);
}
/// <summary>
/// Ajoute une nouvelle citation et l'enregistre dans le fichier JSON.
/// </summary>
/// <param name="quote">Citation à ajouter.</param>
public async Task addQuote(Quote quote)
{
var data = await getAllQuote();
@ -23,6 +34,10 @@ namespace WF_WebAdmin.Service;
await saveQuoteJson(data);
}
/// <summary>
/// Supprime une citation et met à jour le fichier JSON.
/// </summary>
/// <param name="quote">Citation à supprimer.</param>
public async Task removeQuote(Quote quote)
{
var data = await getAllQuote();
@ -34,11 +49,19 @@ namespace WF_WebAdmin.Service;
}
}
/// <summary>
/// Marque une citation comme valide.
/// </summary>
/// <param name="quote">Citation à valider.</param>
public async Task validQuote(Quote quote)
{
throw new NotImplementedException();
}
/// <summary>
/// Met à jour une citation existante.
/// </summary>
/// <param name="quote">Citation mise à jour.</param>
public async Task updateQuote(Quote quote)
{
var data = await getAllQuote();
@ -55,6 +78,10 @@ namespace WF_WebAdmin.Service;
}
}
/// <summary>
/// Récupère toutes les citations stockées dans le fichier JSON.
/// </summary>
/// <returns>Une liste de citations.</returns>
public async Task<List<Quote>> getAllQuote()
{
if (!File.Exists(_jsonFilePath))
@ -67,6 +94,12 @@ namespace WF_WebAdmin.Service;
return JsonSerializer.Deserialize<List<Quote>>(json) ?? new List<Quote>();
}
/// <summary>
/// Récupère une liste paginée de citations.
/// </summary>
/// <param name="nb">Nombre de citations par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Une liste de citations correspondant à la page demandée.</returns>
public async Task<List<Quote>> getSomeQuote(int nb, int page)
{
var quotes = await getAllQuote();
@ -81,22 +114,33 @@ namespace WF_WebAdmin.Service;
return quotes.GetRange((page - 1) * nb, nb);
}
/// <summary>
/// Récupère une citation spécifique en fonction de son ID.
/// </summary>
/// <param name="id">ID de la citation recherchée.</param>
/// <returns>La citation correspondante ou null si elle n'existe pas.</returns>
public async Task<Quote> getOnequote(int id)
{
var data = await getAllQuote();
var q = data.FirstOrDefault(p => p.Id == id);
if (q != null)
{
return q;
}
return null;
}
/// <summary>
/// Recherche des citations selon des critères spécifiques.
/// </summary>
/// <param name="reserch">Terme de recherche.</param>
/// <param name="argument">Liste d'arguments pour affiner la recherche.</param>
/// <returns>Une liste de citations correspondant aux critères de recherche.</returns>
public async Task<List<Quote>> reserchQuote(string reserch, List<string> argument)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère toutes les citations invalides.
/// </summary>
/// <returns>Une liste de citations non validées.</returns>
public async Task<List<Quote>> getAllQuoteInvalid()
{
var quotes = await getAllQuote();
@ -104,6 +148,12 @@ namespace WF_WebAdmin.Service;
return quotes;
}
/// <summary>
/// Récupère une liste paginée de citations invalides.
/// </summary>
/// <param name="nb">Nombre de citations par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Une liste de citations non validées correspondant à la page demandée.</returns>
public async Task<List<Quote>> getSomeQuoteInvalid(int nb, int page)
{
var quotes = await getAllQuoteInvalid();
@ -118,12 +168,20 @@ namespace WF_WebAdmin.Service;
return quotes.GetRange((page - 1) * nb, nb);
}
/// <summary>
/// Récupère le nombre total de citations enregistrées.
/// </summary>
/// <returns>Nombre total de citations.</returns>
public async Task<int> getNbQuote()
{
var data = await getAllQuote();
return data.Count;
}
/// <summary>
/// Récupère la liste des personnages depuis le fichier JSON.
/// </summary>
/// <returns>Une liste de personnages.</returns>
public async Task<List<Character>> getChar()
{
if (!File.Exists(_char))
@ -136,6 +194,10 @@ namespace WF_WebAdmin.Service;
return JsonSerializer.Deserialize<List<Character>>(json) ?? new List<Character>();
}
/// <summary>
/// Récupère la liste des sources depuis le fichier JSON.
/// </summary>
/// <returns>Une liste de sources.</returns>
public async Task<List<Source>> getSrc()
{
if (!File.Exists(_src))
@ -148,4 +210,3 @@ namespace WF_WebAdmin.Service;
return JsonSerializer.Deserialize<List<Source>>(json) ?? new List<Source>();
}
}

@ -3,17 +3,27 @@ using WF_WebAdmin.Model;
namespace WF_WebAdmin.Service;
/// <summary>
/// Service de gestion des utilisateurs utilisant un fichier JSON comme stockage.
/// </summary>
public class UserServiceStub : IUserService
{
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_users.json");
/// <summary>
/// Sauvegarde la liste des utilisateurs dans le fichier JSON.
/// </summary>
/// <param name="users">Liste des utilisateurs à sauvegarder.</param>
public async Task saveUsersJson(List<User> users)
{
var json = JsonSerializer.Serialize(users, new JsonSerializerOptions { WriteIndented = true });
await File.WriteAllTextAsync(_jsonFilePath, json);
}
/// <summary>
/// Supprime un utilisateur de la liste et met à jour le fichier JSON.
/// </summary>
/// <param name="user">Utilisateur à supprimer.</param>
public async Task removeUser(User user)
{
var data = await getAllUser();
@ -25,18 +35,30 @@ public class UserServiceStub : IUserService
}
}
/// <summary>
/// Met à jour le rôle d'un utilisateur pour le passer en administrateur.
/// </summary>
/// <param name="user">Utilisateur à promouvoir.</param>
public Task updateRole(User user)
{
user.IsAdmin = true;
return updateUser(user);
}
/// <summary>
/// Rétrograde un administrateur en utilisateur normal.
/// </summary>
/// <param name="user">Utilisateur à rétrograder.</param>
public Task downgradeRole(User user)
{
user.IsAdmin = false;
return updateUser(user);
}
/// <summary>
/// Récupère tous les utilisateurs stockés dans le fichier JSON.
/// </summary>
/// <returns>Une liste d'utilisateurs.</returns>
public async Task<List<User>> getAllUser()
{
if (!File.Exists(_jsonFilePath))
@ -49,6 +71,12 @@ public class UserServiceStub : IUserService
return JsonSerializer.Deserialize<List<User>>(json) ?? new List<User>();
}
/// <summary>
/// Récupère une liste paginée d'utilisateurs.
/// </summary>
/// <param name="nb">Nombre d'utilisateurs par page.</param>
/// <param name="page">Numéro de la page.</param>
/// <returns>Une liste d'utilisateurs correspondant à la page demandée.</returns>
public async Task<List<User>> getSomeUser(int nb, int page)
{
var users = await getAllUser();
@ -59,28 +87,43 @@ public class UserServiceStub : IUserService
return users.GetRange((page - 1) * nb, nb);
}
/// <summary>
/// Récupère un utilisateur spécifique en fonction de son ID.
/// </summary>
/// <param name="id">ID de l'utilisateur recherché.</param>
/// <returns>L'utilisateur correspondant à l'ID ou null s'il n'existe pas.</returns>
public async Task<User> getOneUser(int id)
{
var data = await getAllUser();
var u = data.FirstOrDefault(p => p.Id == id);
if (u != null)
{
return u;
}
return null;
}
/// <summary>
/// Recherche des utilisateurs selon des critères spécifiques.
/// </summary>
/// <param name="reserch">Terme de recherche.</param>
/// <param name="args">Liste des arguments supplémentaires pour affiner la recherche.</param>
/// <returns>Une liste d'utilisateurs correspondant aux critères de recherche.</returns>
public Task<List<User>> reserchUsers(string reserch, List<string> args)
{
throw new NotImplementedException();
}
/// <summary>
/// Récupère le nombre total d'utilisateurs enregistrés.
/// </summary>
/// <returns>Nombre total d'utilisateurs.</returns>
public async Task<int> getNbUser()
{
var data = await getAllUser();
return data.Count;
}
/// <summary>
/// Met à jour les informations d'un utilisateur existant.
/// </summary>
/// <param name="user">Utilisateur avec les nouvelles informations.</param>
public async Task updateUser(User user)
{
var data = await getAllUser();

Loading…
Cancel
Save