// 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() .UseSqlite(connection) .Options; using ILoggerFactory factory = new LoggerFactory(); ILogger logger = factory.CreateLogger(); 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) { 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; 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(); } }