|
|
@ -0,0 +1,319 @@
|
|
|
|
|
|
|
|
// See https://aka.ms/new-console-template for more information
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using API.Controllers;
|
|
|
|
|
|
|
|
using DbContextLib;
|
|
|
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
|
|
using Microsoft.Data.Sqlite;
|
|
|
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
|
|
using Microsoft.Extensions.Options;
|
|
|
|
|
|
|
|
using Model.DTO;
|
|
|
|
|
|
|
|
using Services;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var connection = new SqliteConnection("DataSource=:memory:");
|
|
|
|
|
|
|
|
connection.Open();
|
|
|
|
|
|
|
|
var options = new DbContextOptionsBuilder<UserDbContext>()
|
|
|
|
|
|
|
|
.UseSqlite(connection)
|
|
|
|
|
|
|
|
.Options;
|
|
|
|
|
|
|
|
using ILoggerFactory factory = new LoggerFactory();
|
|
|
|
|
|
|
|
ILogger<UserController> logger = factory.CreateLogger<UserController>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using (var context = new UserDbContext(options))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var controller = new UserController(new UserDataService(context), logger);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PrintUsers()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine();
|
|
|
|
|
|
|
|
var users = controller.GetUsers(1, 10) as OkObjectResult;
|
|
|
|
|
|
|
|
foreach(var item in users.Value as IEnumerable<UserDTO>)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine(item);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SearchUserByUsername()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nVeuillez saisir le pseudonyme de l'utilisateur recherché : ");
|
|
|
|
|
|
|
|
var username = Console.ReadLine();
|
|
|
|
|
|
|
|
var user = controller.GetUserByUsername(username) as OkObjectResult;
|
|
|
|
|
|
|
|
if(user == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Erreur, la requête n'a rien donné.");
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Console.WriteLine(user.Value as UserDTO);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SearchUserById()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nVeuillez saisir l'identifiant de l'utilisateur recherché : ");
|
|
|
|
|
|
|
|
var id = Console.ReadLine();
|
|
|
|
|
|
|
|
var user = controller.GetUserById(int.Parse(id)) as OkObjectResult;
|
|
|
|
|
|
|
|
if (user == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Erreur, la requête n'a rien donné.");
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Console.WriteLine(user.Value as UserDTO);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void AddUser()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Veuillez saisir le pseudonyme :");
|
|
|
|
|
|
|
|
var username = Console.ReadLine();
|
|
|
|
|
|
|
|
Console.WriteLine("Veuillez saisir une adresse email :");
|
|
|
|
|
|
|
|
var email = Console.ReadLine();
|
|
|
|
|
|
|
|
Console.WriteLine("Veuillez saisir un mot de passe :");
|
|
|
|
|
|
|
|
var mdp = Console.ReadLine();
|
|
|
|
|
|
|
|
var res = controller.CreateUser(new UserDTO(username, mdp, email, false));
|
|
|
|
|
|
|
|
if(res.GetType() == typeof(CreatedResult)) {
|
|
|
|
|
|
|
|
Console.WriteLine("\nUtilisateur créé avec succès");
|
|
|
|
|
|
|
|
} else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de la création de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UpdateUser()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Quel est l'identifiant de l'utilisateur à mettre à jour ?");
|
|
|
|
|
|
|
|
var id = int.Parse(Console.ReadLine());
|
|
|
|
|
|
|
|
var res = (controller.GetUserById(id));
|
|
|
|
|
|
|
|
if (res.GetType() == typeof(OkObjectResult)) {
|
|
|
|
|
|
|
|
var user = (res as OkObjectResult).Value as UserDTO;
|
|
|
|
|
|
|
|
if (user == null) {
|
|
|
|
|
|
|
|
Console.WriteLine("Erreur, un problème est survenu");
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Utilisateur trouvé !\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Veuillez saisir le pseudonyme :");
|
|
|
|
|
|
|
|
var username = Console.ReadLine();
|
|
|
|
|
|
|
|
Console.WriteLine("Veuillez saisir l'email :");
|
|
|
|
|
|
|
|
var email = Console.ReadLine();
|
|
|
|
|
|
|
|
var retour = controller.UpdateUser(id, new UserDTO(id, username, user.Password, email, user.IsAdmin));
|
|
|
|
|
|
|
|
if(retour.GetType() == typeof(OkObjectResult))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Mise à jour effectué avec succès !");
|
|
|
|
|
|
|
|
} else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Une erreur est survenue lors de la mise à jour.");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
Console.WriteLine("Une erreur est survenue lors de la mise à jour !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DeleteUser()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Quel est l'identifiant de lutilisateur à supprimer ?");
|
|
|
|
|
|
|
|
var id = int.Parse(Console.ReadLine());
|
|
|
|
|
|
|
|
var res = controller.DeleteUser(id);
|
|
|
|
|
|
|
|
if(res.GetType() == typeof(OkObjectResult))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("La suppression a été effectuée avec succès !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("Erreur lors de la suppression !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Menu()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("|------------------------------------------------|");
|
|
|
|
|
|
|
|
Console.WriteLine("| Menu |");
|
|
|
|
|
|
|
|
Console.WriteLine("|------------------------------------------------|");
|
|
|
|
|
|
|
|
Console.WriteLine("| t - Effectuer des tests automatiques |");
|
|
|
|
|
|
|
|
Console.WriteLine("| 1 - Afficher les utilisateurs |");
|
|
|
|
|
|
|
|
Console.WriteLine("| 2 - Rechercher un utilisateur avec son pseudo |");
|
|
|
|
|
|
|
|
Console.WriteLine("| 3 - Rechercher un utilisateur avec son ID |");
|
|
|
|
|
|
|
|
Console.WriteLine("| 4 - Ajouter un utilisateur |");
|
|
|
|
|
|
|
|
Console.WriteLine("| 5 - Mettre à jour un utilisateur |");
|
|
|
|
|
|
|
|
Console.WriteLine("| 6 - Supprimer un utilisateur |");
|
|
|
|
|
|
|
|
Console.WriteLine("| q - Quitter |");
|
|
|
|
|
|
|
|
Console.WriteLine("|------------------------------------------------|");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Menu();
|
|
|
|
|
|
|
|
Console.WriteLine("\nSaisie :");
|
|
|
|
|
|
|
|
var saisie = Console.ReadLine();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (saisie != "q") {
|
|
|
|
|
|
|
|
switch (saisie)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
case "1":
|
|
|
|
|
|
|
|
PrintUsers();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "2":
|
|
|
|
|
|
|
|
SearchUserByUsername();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "3":
|
|
|
|
|
|
|
|
SearchUserById();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "4":
|
|
|
|
|
|
|
|
AddUser();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "5":
|
|
|
|
|
|
|
|
UpdateUser();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "6":
|
|
|
|
|
|
|
|
DeleteUser();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "t":
|
|
|
|
|
|
|
|
AutoTests();
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Console.WriteLine("\nAppuyez sur n'importe quelle touche pour continuer...");
|
|
|
|
|
|
|
|
Console.ReadKey();
|
|
|
|
|
|
|
|
Console.Clear();
|
|
|
|
|
|
|
|
Menu();
|
|
|
|
|
|
|
|
Console.WriteLine("\nSaisie :");
|
|
|
|
|
|
|
|
saisie = Console.ReadLine();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void AutoTests()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// Affichage des utilisateurs
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Affichages des utilisateurs stubbés dans le contexte :\n");
|
|
|
|
|
|
|
|
var res = controller.GetUsers(1, 10) as OkObjectResult;
|
|
|
|
|
|
|
|
if(res == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de l'acquisition de la liste des utilisateurs");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var users = res.Value as IEnumerable<UserDTO>;
|
|
|
|
|
|
|
|
if(users == null) {
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur, les ustilisateurs n'ont pas été trouvés !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
PrintUsers();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Recherche d'utilisateur par ID
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Affichage de l'utilisateur ayant pour identifiant 1 :\n");
|
|
|
|
|
|
|
|
var res1 = controller.GetUserById(1) as OkObjectResult;
|
|
|
|
|
|
|
|
if (res1 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de l'acquisition de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var user = res1.Value as UserDTO;
|
|
|
|
|
|
|
|
if (user == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur, l'utilisateur n'existe pas !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine(user);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Recherche d'utilisateur par pseudonyme
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Affichage de l'utilisateur ayant pour username johnny :\n");
|
|
|
|
|
|
|
|
var res2 = controller.GetUserByUsername("johnny") as OkObjectResult;
|
|
|
|
|
|
|
|
if (res2 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de l'acquisition de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var user1 = res2.Value as UserDTO;
|
|
|
|
|
|
|
|
if (user1 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur, l'utilisateur n'existe pas !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine(user1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ajout d'un utilisateur
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Création de l'utilisateur :\n");
|
|
|
|
|
|
|
|
var user2 = new UserDTO("JohnDoe", "motdepasse", "johndoe@gmail.com", false);
|
|
|
|
|
|
|
|
Console.WriteLine(user2);
|
|
|
|
|
|
|
|
var res3 = controller.CreateUser(user2) as CreatedResult;
|
|
|
|
|
|
|
|
if (res3 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de la création de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nUtilisateur créé avec succès !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Affichage des utilisateurs
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
PrintUsers();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Mise à jour d'un utilisateur
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Mise à jour de l'adresse email de l'utilisateur :\n");
|
|
|
|
|
|
|
|
user2 = ((controller.GetUserByUsername("JohnDoe") as OkObjectResult).Value as UserDTO);
|
|
|
|
|
|
|
|
if (user2 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de la récupération de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine(user2);
|
|
|
|
|
|
|
|
Console.WriteLine("\nNouvelle adresse : John.DOE@etu.uca.fr");
|
|
|
|
|
|
|
|
var user3 = new UserDTO(user2.Id, user2.Username, user2.Password, "John.DOE@etu.uca.fr", user2.IsAdmin);
|
|
|
|
|
|
|
|
var res4 = controller.UpdateUser(user2.Id, user3) as OkObjectResult;
|
|
|
|
|
|
|
|
if (res4 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de la mise à jour de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nUtilisateur mis à jour avec succès !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// Affichage des utilisateurs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
PrintUsers();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Suppression d'un utilisateur
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
Console.WriteLine("Suppression de l'utilisateur JohnDoe:\n");
|
|
|
|
|
|
|
|
user2 = ((controller.GetUserByUsername("JohnDoe") as OkObjectResult).Value as UserDTO);
|
|
|
|
|
|
|
|
if (user2 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de la récupération de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine(user2);
|
|
|
|
|
|
|
|
var res5 = controller.DeleteUser(user2.Id) as OkObjectResult;
|
|
|
|
|
|
|
|
if (res5 == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nErreur lors de la suppression de l'utilisateur !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Console.WriteLine("\nUtilisateur supprimé avec succès !");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// Affichage des utilisateurs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("\n##########################################################\n");
|
|
|
|
|
|
|
|
PrintUsers();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|