You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
API_SQLuedo/API_SQLuedo/TestConsoleAPI/Program.cs

319 lines
11 KiB

// See https://aka.ms/new-console-template for more information
using API.Controllers;
using API.Service;
using DbContextLib;
using DbDataManager.Service;
using Dto;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
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(logger, new UserDataServiceApi(new UserDataService(context)));
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();
}
}