diff --git a/WF_EF_Api/Contextlib/DbCommentaryManager.cs b/WF_EF_Api/Contextlib/DbCommentaryManager.cs
index 002082f..558aa46 100644
--- a/WF_EF_Api/Contextlib/DbCommentaryManager.cs
+++ b/WF_EF_Api/Contextlib/DbCommentaryManager.cs
@@ -43,14 +43,13 @@ namespace Contextlib
/// Thrown when no comments are found for the provided quote ID.
public async Task DeleteCommentForQuote(int quoteId)
{
- // Retrieve comments for the specific quoteId
var comments = await _context.comments.Where(x => x.IdQuote == quoteId).ToListAsync();
- if (!comments.Any()) // If no comments exist for this quoteId
+ if (!comments.Any())
{
throw new KeyNotFoundException($"No comments found for the quote ID: {quoteId}.");
}
- _context.comments.RemoveRange(comments); // Efficiently remove all comments in one batch
+ _context.comments.RemoveRange(comments);
await _context.SaveChangesAsync();
}
@@ -62,45 +61,95 @@ namespace Contextlib
/// Thrown when no comments are found for the provided user ID.
public async Task DeleteCommentForUser(int userId)
{
- // Retrieve comments for the specific userId
var comments = await _context.comments.Where(x => x.IdUser == userId).ToListAsync();
- if (!comments.Any()) // If no comments exist for this userId
+ if (!comments.Any())
{
throw new KeyNotFoundException($"No comments found for the user ID: {userId}.");
}
- _context.comments.RemoveRange(comments); // Efficiently remove all comments in one batch
+ _context.comments.RemoveRange(comments);
await _context.SaveChangesAsync();
}
public async Task> GetAllComment()
{
- throw new NotImplementedException();
+ var comments = _context.comments.ToList();
+ return new PaginationResult(comments.Count, 0, comments.Count, comments);
}
public async Task GetCommentById(int id)
{
- throw new NotImplementedException();
+ var comment = await _context.comments.Where(x => x.Id == id).FirstOrDefaultAsync();
+ if(comment == null)
+ {
+ throw new KeyNotFoundException($"No comments found with the given ID: {id}.");
+ }
+ return comment;
}
public async Task> GetCommentByQuote(int quoteId, int index, int pageSize)
{
- throw new NotImplementedException();
+ var comments = await _context.comments.Where(x => x.IdQuote == quoteId).ToListAsync();
+ if (!comments.Any())
+ {
+ throw new KeyNotFoundException($"No comments found for the quote ID: {quoteId}.");
+ }
+ if ((index * pageSize + pageSize) > comments.Count)
+ {
+ if (pageSize > comments.Count)
+ {
+ return new PaginationResult(comments.Count(), index, pageSize, comments);
+ }
+ else
+ {
+ return new PaginationResult(pageSize, index, pageSize, comments.Skip(index * pageSize - (((index * pageSize) + pageSize) - comments.Count)).Take(pageSize).ToList());
+ }
+
+ }
+ return new PaginationResult(comments.Count, index, pageSize, comments.Skip(index * pageSize).Take(pageSize).ToList());
}
public async Task> GetCommentByUser(int userId, int index, int pageSize)
{
- throw new NotImplementedException();
+ var comments = await _context.comments.Where(x => x.IdUser == userId).ToListAsync();
+ if (!comments.Any())
+ {
+ throw new KeyNotFoundException($"No comments found for the user ID: {userId}.");
+ }
+ if ((index * pageSize + pageSize) > comments.Count)
+ {
+ if (pageSize > comments.Count)
+ {
+ return new PaginationResult(comments.Count(), index, pageSize, comments);
+ }
+ else
+ {
+ return new PaginationResult(pageSize, index, pageSize, comments.Skip(index * pageSize - (((index * pageSize) + pageSize) - comments.Count)).Take(pageSize).ToList());
+ }
+
+ }
+ return new PaginationResult(comments.Count, index, pageSize, comments.Skip(index * pageSize).Take(pageSize).ToList());
}
public async Task LastCommentId()
{
- throw new NotImplementedException();
+ var last = _context.comments.OrderByDescending(x => x.Id).FirstOrDefault();
+ if(last == null)
+ {
+ return 0;
+ }
+ return last.Id;
}
public async Task RemoveComment(int id)
{
- throw new NotImplementedException();
+ var comment = await _context.comments.Where(x => x.Id == id).FirstOrDefaultAsync();
+ if (comment == null)
+ {
+ throw new KeyNotFoundException($"No comments found with the given ID: {id}.");
+ }
+ _context.comments.Remove(comment);
+ await _context.SaveChangesAsync();
}
public async Task UpdateComment(int id, Commentary comment)
diff --git a/WF_EF_Api/Dto2Entities/Dto2Entities.csproj b/WF_EF_Api/Dto2Entities/Dto2Entities.csproj
new file mode 100644
index 0000000..beed701
--- /dev/null
+++ b/WF_EF_Api/Dto2Entities/Dto2Entities.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/WF_EF_Api/StubbedContextLib/Migrations/20250318135625_migr1.Designer.cs b/WF_EF_Api/StubbedContextLib/Migrations/20250318135625_migr1.Designer.cs
new file mode 100644
index 0000000..2ba04f3
--- /dev/null
+++ b/WF_EF_Api/StubbedContextLib/Migrations/20250318135625_migr1.Designer.cs
@@ -0,0 +1,1065 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using StubbedContextLib;
+
+#nullable disable
+
+namespace StubbedContextLib.Migrations
+{
+ [DbContext(typeof(StubWTFContext))]
+ [Migration("20250318135625_migr1")]
+ partial class migr1
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("IdImage")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("characters");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ IdImage = 1,
+ Name = "Alan Grant"
+ },
+ new
+ {
+ Id = 2,
+ IdImage = 2,
+ Name = "Aragorn"
+ },
+ new
+ {
+ Id = 3,
+ IdImage = 3,
+ Name = "Legolas"
+ },
+ new
+ {
+ Id = 4,
+ IdImage = 4,
+ Name = "Frodon"
+ },
+ new
+ {
+ Id = 5,
+ IdImage = 5,
+ Name = "Dobby"
+ },
+ new
+ {
+ Id = 6,
+ IdImage = 6,
+ Name = "Jon Snow"
+ },
+ new
+ {
+ Id = 7,
+ IdImage = 7,
+ Name = "Daenerys Targaryen"
+ },
+ new
+ {
+ Id = 8,
+ IdImage = 8,
+ Name = "Luke Skywalker"
+ },
+ new
+ {
+ Id = 9,
+ IdImage = 9,
+ Name = "Princess Leia"
+ },
+ new
+ {
+ Id = 10,
+ IdImage = 10,
+ Name = "Harry Potter"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Commentary", b =>
+ {
+ b.Property("IdUser")
+ .HasColumnType("int");
+
+ b.Property("IdQuote")
+ .HasColumnType("int");
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("DateCommentary")
+ .HasColumnType("date")
+ .HasColumnName("DateCommentary");
+
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.HasKey("IdUser", "IdQuote");
+
+ b.HasIndex("IdQuote");
+
+ b.ToTable("comments");
+
+ b.HasData(
+ new
+ {
+ IdUser = 2,
+ IdQuote = 1,
+ Comment = "Ce film est le meilleur",
+ DateCommentary = new DateTime(2025, 2, 3, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Id = 1
+ },
+ new
+ {
+ IdUser = 3,
+ IdQuote = 1,
+ Comment = "Very good",
+ DateCommentary = new DateTime(2025, 3, 11, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Id = 2
+ });
+ });
+
+ modelBuilder.Entity("Entity.DailyQuote", b =>
+ {
+ b.Property("IdQuote")
+ .HasColumnType("int");
+
+ b.HasKey("IdQuote");
+
+ b.ToTable("dailyquotes");
+
+ b.HasData(
+ new
+ {
+ IdQuote = 1
+ },
+ new
+ {
+ IdQuote = 5
+ });
+ });
+
+ modelBuilder.Entity("Entity.Favorite", b =>
+ {
+ b.Property("IdQuote")
+ .HasColumnType("int");
+
+ b.Property("IdUsers")
+ .HasColumnType("int");
+
+ b.HasKey("IdQuote", "IdUsers");
+
+ b.HasIndex("IdUsers");
+
+ b.ToTable("favorites");
+
+ b.HasData(
+ new
+ {
+ IdQuote = 2,
+ IdUsers = 8
+ },
+ new
+ {
+ IdQuote = 5,
+ IdUsers = 3
+ },
+ new
+ {
+ IdQuote = 9,
+ IdUsers = 1
+ },
+ new
+ {
+ IdQuote = 4,
+ IdUsers = 10
+ },
+ new
+ {
+ IdQuote = 3,
+ IdUsers = 2
+ },
+ new
+ {
+ IdQuote = 6,
+ IdUsers = 7
+ },
+ new
+ {
+ IdQuote = 1,
+ IdUsers = 6
+ },
+ new
+ {
+ IdQuote = 8,
+ IdUsers = 9
+ },
+ new
+ {
+ IdQuote = 10,
+ IdUsers = 5
+ });
+ });
+
+ modelBuilder.Entity("Entity.Images", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("ImgPath")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("images");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ ImgPath = "https://th.bing.com/th/id/OIP.TJuWNCsibz8MVmhdNQEdMwHaE8?w=244&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 2,
+ ImgPath = "https://th.bing.com/th/id/OIP.NgXRQ5-IknA6_qOPFhLWIwHaHK?w=165&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 3,
+ ImgPath = "https://th.bing.com/th/id/OIP.XcJoJ6bC9sAMjol1pJn5UQHaLH?w=118&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 4,
+ ImgPath = "https://th.bing.com/th/id/OIP.PPIESqZaNDa-qUcfSDXhdQHaGK?w=210&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 5,
+ ImgPath = "https://th.bing.com/th/id/OIP.XBghSl2kfRNNtQoSxc901wHaHa?w=177&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 6,
+ ImgPath = "https://th.bing.com/th/id/OIP.af1Aid64cqEKoIOBgCPxtQHaJO?w=145&h=182&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 7,
+ ImgPath = "https://th.bing.com/th/id/OIP.ri5vSXr5lNTLt4DO6KQXyQHaI4?w=158&h=189&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 8,
+ ImgPath = "https://th.bing.com/th/id/OIP.uPTRLR8uspCiafiunUqKfQHaMJ?w=115&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 9,
+ ImgPath = "https://th.bing.com/th/id/OIP.hcJis4rKbyQtugsoFJU2ngHaM_?w=118&h=207&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 10,
+ ImgPath = "https://th.bing.com/th/id/OIP.Py1_XfUrKJY_A6tYEmFS5wHaE8?w=280&h=187&c=7&r=0&o=5&pid=1.7"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Question", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("AnswerA")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("AnswerB")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("AnswerC")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("AnswerD")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("CorrectAnswer")
+ .IsRequired()
+ .HasMaxLength(1)
+ .HasColumnType("nvarchar(1)");
+
+ b.Property("Text")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.HasKey("Id");
+
+ b.ToTable("question");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ AnswerA = "Gimli",
+ AnswerB = "Aragorn",
+ AnswerC = "Frodon",
+ AnswerD = "Gandalf",
+ CorrectAnswer = "B",
+ Text = "Qui est le leader de la Communauté de l'Anneau ?"
+ },
+ new
+ {
+ Id = 2,
+ AnswerA = "Serdaigle",
+ AnswerB = "Gryffondor",
+ AnswerC = "Serpentard",
+ AnswerD = "Poufsouffle",
+ CorrectAnswer = "B",
+ Text = "Dans quelle maison Harry Potter est-il ?"
+ },
+ new
+ {
+ Id = 3,
+ AnswerA = "Saroumane",
+ AnswerB = "Sauron",
+ AnswerC = "Gollum",
+ AnswerD = "Gothmog",
+ CorrectAnswer = "B",
+ Text = "Qui est le Seigneur des Ténèbres dans la saga Le Seigneur des Anneaux ?"
+ },
+ new
+ {
+ Id = 4,
+ AnswerA = "Han Solo",
+ AnswerB = "Princesse Leia",
+ AnswerC = "Chewbacca",
+ AnswerD = "R2-D2",
+ CorrectAnswer = "A",
+ Text = "Dans le film Star Wars : Episode IV, qui sauve Luke Skywalker de l'Étoile de la Mort ?"
+ },
+ new
+ {
+ Id = 5,
+ AnswerA = "Reine Jadis",
+ AnswerB = "Aslan",
+ AnswerC = "Edmund",
+ AnswerD = "Lucy",
+ CorrectAnswer = "B",
+ Text = "Qui est le souverain de Narnia dans Le Lion, la Sorcière Blanche et l'Armoire Magique ?"
+ },
+ new
+ {
+ Id = 6,
+ AnswerA = "Smaug",
+ AnswerB = "Falkor",
+ AnswerC = "Norbert",
+ AnswerD = "Shenron",
+ CorrectAnswer = "A",
+ Text = "Quel est le nom du dragon dans Le Hobbit ?"
+ },
+ new
+ {
+ Id = 7,
+ AnswerA = "Bella Swan",
+ AnswerB = "Edward Cullen",
+ AnswerC = "Jacob Black",
+ AnswerD = "Victoria",
+ CorrectAnswer = "A",
+ Text = "Qui est la première personne à être mordue par un vampire dans Twilight ?"
+ },
+ new
+ {
+ Id = 8,
+ AnswerA = "Obi-Wan Kenobi",
+ AnswerB = "Yoda",
+ AnswerC = "Han Solo",
+ AnswerD = "Luke Skywalker",
+ CorrectAnswer = "A",
+ Text = "Quel personnage dit Que la Force soit avec toi dans Star Wars ?"
+ },
+ new
+ {
+ Id = 9,
+ AnswerA = "Dr. Ellie Sattler",
+ AnswerB = "Alan Grant",
+ AnswerC = "John Hammond",
+ AnswerD = "Dennis Nedry",
+ CorrectAnswer = "B",
+ Text = "Dans Jurassic Park, quel est le nom du paléontologue sur l'île ?"
+ },
+ new
+ {
+ Id = 10,
+ AnswerA = "Cersei Lannister",
+ AnswerB = "Arya Stark",
+ AnswerC = "Daenerys Targaryen",
+ AnswerD = "Sansa Stark",
+ CorrectAnswer = "C",
+ Text = "Dans Game of Thrones, qui est surnommée la Mère des Dragons ?"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Quiz", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("IdImage")
+ .HasColumnType("int");
+
+ b.Property("NbQuestion")
+ .HasColumnType("int");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("quizzes");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ IdImage = 1,
+ NbQuestion = 5,
+ Title = "Quiz 1"
+ },
+ new
+ {
+ Id = 2,
+ IdImage = 2,
+ NbQuestion = 5,
+ Title = "Quiz 2"
+ });
+ });
+
+ modelBuilder.Entity("Entity.QuizQuestion", b =>
+ {
+ b.Property("IdQuestion")
+ .HasColumnType("int");
+
+ b.Property("IdQuiz")
+ .HasColumnType("int");
+
+ b.HasKey("IdQuestion", "IdQuiz");
+
+ b.HasIndex("IdQuiz");
+
+ b.ToTable("QuizQuestion");
+
+ b.HasData(
+ new
+ {
+ IdQuestion = 1,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 2,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 3,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 4,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 5,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 6,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 7,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 8,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 9,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 10,
+ IdQuiz = 2
+ });
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Content")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("IdCharacter")
+ .HasColumnType("int");
+
+ b.Property("IdSource")
+ .HasColumnType("int");
+
+ b.Property("IdUsersPropose")
+ .HasColumnType("int");
+
+ b.Property("IsValid")
+ .HasColumnType("bit");
+
+ b.Property("Langage")
+ .HasColumnType("int");
+
+ b.Property("Likes")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdCharacter");
+
+ b.HasIndex("IdSource");
+
+ b.HasIndex("IdUsersPropose");
+
+ b.ToTable("quotes");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Content = "Je n'y crois pas. Je n'y crois pas. Ce n'est pas possible",
+ IdCharacter = 1,
+ IdSource = 1,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 2,
+ Content = "There is always hope",
+ IdCharacter = 2,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 3,
+ Content = "A red sun rises. Blood has been spilled this night.",
+ IdCharacter = 3,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 4,
+ Content = "I wish the Ring had never come to me.I wish none of this had happened.",
+ IdCharacter = 4,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 5,
+ Content = "Dobby is a free elf!",
+ IdCharacter = 5,
+ IdSource = 4,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 6,
+ Content = "Winter is comming",
+ IdCharacter = 6,
+ IdSource = 3,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 7,
+ Content = "Je suis la dernière Targaryen. Je suis la reine des dragons",
+ IdCharacter = 7,
+ IdSource = 3,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 8,
+ Content = "Je ne suis pas prêt à affronter ça. C'est trop pour moi.",
+ IdCharacter = 8,
+ IdSource = 5,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 9,
+ Content = "Aidez-moi, Obi-Wan Kenobi, vous êtes mon seul espoir.",
+ IdCharacter = 9,
+ IdSource = 5,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 10,
+ Content = "La quoi ?",
+ IdCharacter = 10,
+ IdSource = 4,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ });
+ });
+
+ modelBuilder.Entity("Entity.Source", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("TypeSrc")
+ .HasColumnType("int");
+
+ b.Property("Year")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("sources");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Title = "Jurassic Park",
+ TypeSrc = 0,
+ Year = 1993
+ },
+ new
+ {
+ Id = 2,
+ Title = "Le Seigneur des anneaux : La Communauté de l'anneau",
+ TypeSrc = 0,
+ Year = 2001
+ },
+ new
+ {
+ Id = 3,
+ Title = "Game of throne",
+ TypeSrc = 1,
+ Year = 2011
+ },
+ new
+ {
+ Id = 4,
+ Title = "Harry Potter à l'école des sorcier",
+ TypeSrc = 0,
+ Year = 1997
+ },
+ new
+ {
+ Id = 5,
+ Title = "Star Wars, épisode IV : Un nouvel espoir",
+ TypeSrc = 0,
+ Year = 1977
+ });
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Created")
+ .HasColumnType("date")
+ .HasColumnName("Created");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IdImage")
+ .HasColumnType("int");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("UserName")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("users");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Created = new DateTime(2025, 5, 12, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "jhonDhoe@gmail.com",
+ IdImage = 1,
+ Password = "1234",
+ UserName = "Jhon-Dhoe"
+ },
+ new
+ {
+ Id = 2,
+ Created = new DateTime(2025, 3, 19, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "lucy_rose@outlook.com",
+ IdImage = 2,
+ Password = "abcd",
+ UserName = "Lucy-Rose"
+ },
+ new
+ {
+ Id = 3,
+ Created = new DateTime(2024, 11, 2, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "mark.taylor@yahoo.com",
+ IdImage = 3,
+ Password = "5678",
+ UserName = "Mark-Taylor"
+ },
+ new
+ {
+ Id = 4,
+ Created = new DateTime(2025, 2, 28, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "sophie.martin@gmail.com",
+ IdImage = 4,
+ Password = "4321",
+ UserName = "Sophie-Martin"
+ },
+ new
+ {
+ Id = 5,
+ Created = new DateTime(2025, 1, 15, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "nathan_doe@aol.com",
+ IdImage = 5,
+ Password = "8765",
+ UserName = "Nathan-Doe"
+ },
+ new
+ {
+ Id = 6,
+ Created = new DateTime(2025, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "ella.brown@icloud.com",
+ IdImage = 6,
+ Password = "2468",
+ UserName = "Ella-Brown"
+ },
+ new
+ {
+ Id = 7,
+ Created = new DateTime(2024, 12, 25, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "oliver_smith@gmail.com",
+ IdImage = 7,
+ Password = "1357",
+ UserName = "Oliver-Smith"
+ },
+ new
+ {
+ Id = 8,
+ Created = new DateTime(2025, 3, 5, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "mia.jones@outlook.com",
+ IdImage = 8,
+ Password = "1122",
+ UserName = "Mia-Jones"
+ },
+ new
+ {
+ Id = 9,
+ Created = new DateTime(2025, 2, 22, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "kevin_williams@aol.com",
+ IdImage = 9,
+ Password = "2233",
+ UserName = "Kevin-Williams"
+ },
+ new
+ {
+ Id = 10,
+ Created = new DateTime(2025, 1, 3, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "olivia.white@yahoo.com",
+ IdImage = 10,
+ Password = "3344",
+ UserName = "Olivia-White"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Characters")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.Commentary", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany("Commentarys")
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "User")
+ .WithMany()
+ .HasForeignKey("IdUser")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.DailyQuote", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany("DailyQuotes")
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+ });
+
+ modelBuilder.Entity("Entity.Favorite", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany()
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "Users")
+ .WithMany()
+ .HasForeignKey("IdUsers")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+
+ b.Navigation("Users");
+ });
+
+ modelBuilder.Entity("Entity.Quiz", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Quizs")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.QuizQuestion", b =>
+ {
+ b.HasOne("Entity.Question", null)
+ .WithMany()
+ .HasForeignKey("IdQuestion")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Quiz", null)
+ .WithMany()
+ .HasForeignKey("IdQuiz")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.HasOne("Entity.Character", "Character")
+ .WithMany("Quotes")
+ .HasForeignKey("IdCharacter")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Source", "Source")
+ .WithMany("Quotes")
+ .HasForeignKey("IdSource")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "User")
+ .WithMany("Quotes")
+ .HasForeignKey("IdUsersPropose");
+
+ b.Navigation("Character");
+
+ b.Navigation("Source");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Users")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.Navigation("Quotes");
+ });
+
+ modelBuilder.Entity("Entity.Images", b =>
+ {
+ b.Navigation("Characters");
+
+ b.Navigation("Quizs");
+
+ b.Navigation("Users");
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.Navigation("Commentarys");
+
+ b.Navigation("DailyQuotes");
+ });
+
+ modelBuilder.Entity("Entity.Source", b =>
+ {
+ b.Navigation("Quotes");
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.Navigation("Quotes");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/WF_EF_Api/StubbedContextLib/Migrations/20250318135625_migr1.cs b/WF_EF_Api/StubbedContextLib/Migrations/20250318135625_migr1.cs
new file mode 100644
index 0000000..00b10fb
--- /dev/null
+++ b/WF_EF_Api/StubbedContextLib/Migrations/20250318135625_migr1.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace StubbedContextLib.Migrations
+{
+ ///
+ public partial class migr1 : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+
+ }
+ }
+}