|
|
|
@ -4,7 +4,6 @@ using Entities;
|
|
|
|
|
using Microsoft.AspNetCore.Cryptography.KeyDerivation;
|
|
|
|
|
using Microsoft.Data.Sqlite;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using StubbedContextLib;
|
|
|
|
|
|
|
|
|
|
var connection = new SqliteConnection("DataSource=:memory:");
|
|
|
|
@ -13,23 +12,23 @@ var options = new DbContextOptionsBuilder<UserDbContext>()
|
|
|
|
|
.UseSqlite(connection)
|
|
|
|
|
.Options;
|
|
|
|
|
|
|
|
|
|
using ILoggerFactory factory = new LoggerFactory();
|
|
|
|
|
|
|
|
|
|
// Partie sur les utilisateurs
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
// Test sur les users
|
|
|
|
|
// Test sur les utilisateurs
|
|
|
|
|
var users = db.Users;
|
|
|
|
|
|
|
|
|
|
// Affichage de tous les users
|
|
|
|
|
// Affichage de tous les utilisateurs
|
|
|
|
|
Console.WriteLine("Affichage des noms des utilisateurs");
|
|
|
|
|
foreach (var user in users)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(user.Username);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Affichage des users filtrés
|
|
|
|
|
// Affichage des utilisateurs filtrés
|
|
|
|
|
Console.WriteLine("\nAffichage des utilisateurs contenant e");
|
|
|
|
|
var filteredUsers = users.Where(u => u.Username.Contains("e"));
|
|
|
|
|
foreach (var user in filteredUsers)
|
|
|
|
@ -37,7 +36,7 @@ using (var db = new StubbedContext(options))
|
|
|
|
|
Console.WriteLine(user.Username);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Affichage des users triés
|
|
|
|
|
// Affichage des utilisateurs triés
|
|
|
|
|
Console.WriteLine("\nAffichage des utilisateurs triés selon leur nom");
|
|
|
|
|
var orderedUsers = users.OrderBy(u => u.Username);
|
|
|
|
|
foreach (var user in orderedUsers)
|
|
|
|
@ -62,11 +61,13 @@ using (var db = new StubbedContext(options))
|
|
|
|
|
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var users = db.Users;
|
|
|
|
|
// Affichage du nouvel utilisateur
|
|
|
|
|
Console.WriteLine("\nAffichage du nouvel utilisateur");
|
|
|
|
|
var u = await users.FirstOrDefaultAsync(u => u.Username == "le nouveau du groupe");
|
|
|
|
|
foreach (var pptt in typeof(UserEntity).GetProperties().Where((p => p.CanWrite && p.Name != nameof(UserEntity.Id))))
|
|
|
|
|
foreach (var pptt in typeof(UserEntity).GetProperties().Where(p => p.CanWrite && p.Name != nameof(UserEntity.Id)))
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(pptt.GetValue(u));
|
|
|
|
|
}
|
|
|
|
@ -82,6 +83,8 @@ using (var db = new StubbedContext(options))
|
|
|
|
|
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var users = db.Users;
|
|
|
|
|
// Affichage des utilisateurs après suppression
|
|
|
|
|
Console.WriteLine("\nAffichage des utilisateurs après suppression");
|
|
|
|
@ -102,6 +105,8 @@ using (var db = new StubbedContext(options))
|
|
|
|
|
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var users = db.Users;
|
|
|
|
|
// Affichage des utilisateurs après modification
|
|
|
|
|
var userToModify = await users.FirstOrDefaultAsync(u => u.Username == "clement modifié");
|
|
|
|
@ -118,3 +123,131 @@ using (var db = new StubbedContext(options))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Partie sur les enquetes
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
// Test sur les enquetes
|
|
|
|
|
var inquiries = db.Inquiry;
|
|
|
|
|
|
|
|
|
|
// Affichage de toutes les enquetes
|
|
|
|
|
Console.WriteLine("\nAffichage des noms des enquetes");
|
|
|
|
|
foreach (var inquiry in inquiries)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(inquiry.Title);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Affichage des enquetes filtrées
|
|
|
|
|
Console.WriteLine("\nAffichage des enquetes contenant o");
|
|
|
|
|
var filteredInquiries = inquiries.Where(i => i.Title.Contains("o"));
|
|
|
|
|
foreach (var inquiry in filteredInquiries)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(inquiry.Title);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Affichage des enquetes triées
|
|
|
|
|
Console.WriteLine("\nAffichage des enquetes triées selon leur nom");
|
|
|
|
|
var orderedInquiries = inquiries.OrderBy(i => i.Title);
|
|
|
|
|
foreach (var inquiry in orderedInquiries)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(inquiry.Title);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var solutions = db.Solutions;
|
|
|
|
|
|
|
|
|
|
// Affichage de la solution de l'enquete sur les orang outan
|
|
|
|
|
Console.WriteLine("\nAffichage de la solution de l'enquete sur les orang outan");
|
|
|
|
|
|
|
|
|
|
var sol = await solutions.FirstOrDefaultAsync(s => s.Owner.Title == "L'enquête sur les orang outan");
|
|
|
|
|
Console.WriteLine(sol.MurdererFirstName);
|
|
|
|
|
|
|
|
|
|
var inquirySolution = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête sur les orang outan");
|
|
|
|
|
var i = inquirySolution.InquiryTable;
|
|
|
|
|
foreach (var pptt in typeof(SolutionEntity).GetProperties()
|
|
|
|
|
.Where(p => p.CanWrite && p.Name != nameof(SolutionEntity.Owner)))
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(pptt.GetValue(i));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ajout d'une enquete
|
|
|
|
|
Console.WriteLine("\nAjout de la nouvelle enquete");
|
|
|
|
|
var newInquiry = new InquiryEntity(
|
|
|
|
|
"La nouvelle enquete",
|
|
|
|
|
"La description de la nouvelle enquete",
|
|
|
|
|
true,
|
|
|
|
|
null,
|
|
|
|
|
null);
|
|
|
|
|
if (!inquiries.Any(inquiry => inquiry.Title == newInquiry.Title))
|
|
|
|
|
{
|
|
|
|
|
inquiries.Add(newInquiry);
|
|
|
|
|
await db.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var inquiries = db.Inquiry;
|
|
|
|
|
// Affichage de la nouvelle enquete
|
|
|
|
|
Console.WriteLine("\nAffichage de la nouvelle enquete");
|
|
|
|
|
var i = await inquiries.FirstOrDefaultAsync(i => i.Title == "La nouvelle enquete");
|
|
|
|
|
foreach (var pptt in typeof(InquiryEntity).GetProperties()
|
|
|
|
|
.Where(p => p.CanWrite && p.Name != nameof(InquiryEntity.Id)))
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(pptt.GetValue(i));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (i != null)
|
|
|
|
|
{
|
|
|
|
|
// Suppression de la nouvelle enquete
|
|
|
|
|
Console.WriteLine("\nSuppression de la nouvelle enquete");
|
|
|
|
|
db.Inquiry.Remove(i);
|
|
|
|
|
await db.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var inquiries = db.Inquiry;
|
|
|
|
|
// Affichage des utilisateurs après suppression
|
|
|
|
|
Console.WriteLine("\nAffichage des utilisateurs après suppression");
|
|
|
|
|
foreach (var inquiry in inquiries)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(inquiry.Title);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Modification d'une enquete
|
|
|
|
|
Console.WriteLine("\nModification de l'enquete L'enquête de la carotte");
|
|
|
|
|
var inquiryToModify = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête de la carotte");
|
|
|
|
|
if (inquiryToModify != null)
|
|
|
|
|
{
|
|
|
|
|
inquiryToModify.Title = "L'enquête de la carotte modifiée";
|
|
|
|
|
await db.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using (var db = new StubbedContext(options))
|
|
|
|
|
{
|
|
|
|
|
await db.Database.EnsureCreatedAsync();
|
|
|
|
|
|
|
|
|
|
var inquiries = db.Inquiry;
|
|
|
|
|
// Affichage des enquetes après modification
|
|
|
|
|
var inquiryToModify = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête de la carotte modifiée");
|
|
|
|
|
if (inquiryToModify != null)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("\nAffichage de l'enquete après modification");
|
|
|
|
|
Console.WriteLine(inquiryToModify.Title);
|
|
|
|
|
// Rollback
|
|
|
|
|
inquiryToModify = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête de la carotte modifiée");
|
|
|
|
|
if (inquiryToModify != null)
|
|
|
|
|
{
|
|
|
|
|
inquiryToModify.Title = "L'enquête de la carotte";
|
|
|
|
|
await db.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|