diff --git a/API/API.csproj.user b/API/API.csproj.user
new file mode 100644
index 0000000..9ff5820
--- /dev/null
+++ b/API/API.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ https
+
+
\ No newline at end of file
diff --git a/APIConsole/APIConsole.csproj b/APIConsole/APIConsole.csproj
new file mode 100644
index 0000000..2f4fc77
--- /dev/null
+++ b/APIConsole/APIConsole.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/APIConsole/Program.cs b/APIConsole/Program.cs
new file mode 100644
index 0000000..e5dff12
--- /dev/null
+++ b/APIConsole/Program.cs
@@ -0,0 +1,3 @@
+// See https://aka.ms/new-console-template for more information
+
+Console.WriteLine("Hello, World!");
\ No newline at end of file
diff --git a/AppContext/AppContext.cs b/AppContext/AppContext.cs
index f875684..5a2eb8f 100644
--- a/AppContext/AppContext.cs
+++ b/AppContext/AppContext.cs
@@ -26,23 +26,19 @@ public class AppContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
- base.OnConfiguring(optionsBuilder);
- if (optionsBuilder.IsConfigured)
+ if (!optionsBuilder.IsConfigured)
{
- return;
- }
-
- var pgsqliteDsn = Environment.GetEnvironmentVariable("PGSQL_DSN");
+ var pgsqliteDsn = Environment.GetEnvironmentVariable("PGSQL_DSN");
- if (pgsqliteDsn != null)
- {
- optionsBuilder.UseNpgsql(pgsqliteDsn);
+ if (pgsqliteDsn != null)
+ {
+ optionsBuilder.UseNpgsql(pgsqliteDsn);
+ }
+ else
+ {
+ optionsBuilder.UseSqlite("Data Source=database.db");
+ }
}
- else
- {
- optionsBuilder.UseSqlite("Data Source=database.db");
- }
-
}
protected override void OnModelCreating(ModelBuilder builder)
diff --git a/EFConsole/EFConsole.csproj b/EFConsole/EFConsole.csproj
new file mode 100644
index 0000000..5873ce1
--- /dev/null
+++ b/EFConsole/EFConsole.csproj
@@ -0,0 +1,25 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
diff --git a/EFConsole/MembersConsole.cs b/EFConsole/MembersConsole.cs
new file mode 100644
index 0000000..5b70248
--- /dev/null
+++ b/EFConsole/MembersConsole.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Linq;
+using AppContext.Entities;
+using Model;
+
+namespace EFConsole
+{
+ public class MembersConsole
+ {
+ public static void TestAddMember(AppContext.AppContext db)
+ {
+ var newMember = new MemberEntity
+ {
+ TeamId = 1,
+ UserId = 1,
+ Role = MemberRole.Player
+ };
+
+ db.Members.Add(newMember);
+ db.SaveChanges();
+
+ Console.WriteLine("Membre ajouté avec succès !");
+ }
+
+ public static void TestGetAllMembers(AppContext.AppContext db)
+ {
+ var members = db.Members.ToList();
+ Console.WriteLine("Liste des membres :");
+ foreach (var member in members)
+ {
+ Console.WriteLine($"ID Équipe : {member.TeamId}, ID Utilisateur : {member.UserId}, Rôle : {member.Role}");
+ }
+ }
+
+ public static void TestGetMembersByTeamId(AppContext.AppContext db, int teamId)
+ {
+ var members = db.Members.Where(m => m.TeamId == teamId).ToList();
+ Console.WriteLine($"Membres de l'équipe avec ID {teamId} :");
+ foreach (var member in members)
+ {
+ Console.WriteLine($"ID Équipe : {member.TeamId}, ID Utilisateur : {member.UserId}, Rôle : {member.Role}");
+ }
+ }
+
+ public static void TestGetMembersByUserId(AppContext.AppContext db, int userId)
+ {
+ var members = db.Members.Where(m => m.UserId == userId).ToList();
+ Console.WriteLine($"Membres associés à l'utilisateur avec ID {userId} :");
+ foreach (var member in members)
+ {
+ Console.WriteLine($"ID Équipe : {member.TeamId}, ID Utilisateur : {member.UserId}, Rôle : {member.Role}");
+ }
+ }
+
+ public static void TestUpdateMemberRole(AppContext.AppContext db, int teamId, int memberId, MemberRole newRole)
+ {
+ var memberToUpdate = db.Members.FirstOrDefault(m => m.TeamId == teamId && m.UserId == memberId); // Trouver le membre dans l'équipe spécifiée
+ if (memberToUpdate != null)
+ {
+ memberToUpdate.Role = newRole;
+ db.SaveChanges();
+ Console.WriteLine("Rôle du membre mis à jour avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucun membre trouvé dans l'équipe avec l'ID {teamId} et l'ID utilisateur {memberId}.");
+ }
+ }
+
+
+ public static void TestRemoveMember(AppContext.AppContext db, int teamId, int memberId)
+ {
+ var memberToDelete = db.Members.FirstOrDefault(m => m.TeamId == teamId && m.UserId == memberId); // Trouver le membre dans l'équipe spécifiée
+ if (memberToDelete != null)
+ {
+ db.Members.Remove(memberToDelete); // Supprimer le membre
+ db.SaveChanges();
+ Console.WriteLine("Membre supprimé avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucun membre trouvé dans l'équipe avec l'ID {teamId} et l'ID utilisateur {memberId} pour la suppression.");
+ }
+ }
+
+
+ }
+}
diff --git a/EFConsole/Program.cs b/EFConsole/Program.cs
new file mode 100644
index 0000000..2c101f9
--- /dev/null
+++ b/EFConsole/Program.cs
@@ -0,0 +1,85 @@
+using Model;
+using StubContext;
+
+namespace EFConsole
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.OutputEncoding = System.Text.Encoding.UTF8;
+
+ try
+ {
+ using (AppContext.AppContext db = new StubAppContext())
+ {
+ TestUserMethods(db);
+ TestTacticMethods(db);
+ TestTeamMethods(db);
+ TestMemberMethods(db);
+ TestTacticsStepMethods(db);
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"Une erreur s'est produite : {ex.Message}");
+
+ if (ex.InnerException != null)
+ {
+ Console.WriteLine($"Détails de l'exception interne : {ex.InnerException.Message}");
+ }
+ }
+ }
+
+ static void TestUserMethods(AppContext.AppContext db)
+ {
+ UsersConsole.TestAddUser(db);
+ UsersConsole.TestGetAllUsers(db);
+ UsersConsole.TestFindUserByMail(db, "maxime@mail.com");
+ UsersConsole.TestUpdateUser(db);
+ UsersConsole.TestDeleteUser(db);
+ UsersConsole.TestSearchUsersByName(db, "Pierre");
+ UsersConsole.TestGetTacticsOfAllUsers(db);
+ UsersConsole.TestGetTacticsOfOneUser(db, 1);
+ }
+
+ static void TestTacticMethods(AppContext.AppContext db)
+ {
+ TacticsConsole.TestAddTactic(db);
+ TacticsConsole.TestGetAllTactics(db);
+ TacticsConsole.TestFindTacticById(db, 1);
+ TacticsConsole.TestUpdateTactic(db, 1, "Nouveau nom");
+ TacticsConsole.TestDeleteTactic(db, 1);
+ TacticsConsole.TestGetTacticsByOwner(db, 1);
+ }
+
+ static void TestTeamMethods(AppContext.AppContext db)
+ {
+ TeamsConsole.TestAddTeam(db);
+ TeamsConsole.TestGetAllTeams(db);
+ TeamsConsole.TestGetTeamMembers(db, 1);
+ TeamsConsole.TestUpdateTeam(db, 1, "Nouveau nom", "Nouvelle image", "#FF0000", "#00FF00");
+ TeamsConsole.TestDeleteTeam(db, 1);
+ }
+
+ static void TestMemberMethods(AppContext.AppContext db)
+ {
+ MembersConsole.TestAddMember(db);
+ MembersConsole.TestGetAllMembers(db);
+ MembersConsole.TestGetMembersByTeamId(db, 1);
+ MembersConsole.TestGetMembersByUserId(db, 1);
+ MembersConsole.TestUpdateMemberRole(db, 1, 1, MemberRole.Coach);
+ MembersConsole.TestRemoveMember(db, 1, 1);
+ }
+
+ static void TestTacticsStepMethods(AppContext.AppContext db)
+ {
+ TacticsStepConsole.TestAddTacticStep(db);
+ TacticsStepConsole.TestGetAllTacticSteps(db);
+ TacticsStepConsole.TestGetTacticStepsByTacticId(db, 1);
+ TacticsStepConsole.TestUpdateTacticStepContent(db, 1, "test content");
+ TacticsStepConsole.TestDeleteTacticStep(db, 1);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/EFConsole/TacticsConsole.cs b/EFConsole/TacticsConsole.cs
new file mode 100644
index 0000000..dd29d2e
--- /dev/null
+++ b/EFConsole/TacticsConsole.cs
@@ -0,0 +1,89 @@
+using System;
+using System.Linq;
+using AppContext.Entities;
+using Model;
+
+namespace EFConsole
+{
+ class TacticsConsole
+ {
+ internal static void TestAddTactic(AppContext.AppContext db)
+ {
+ var newTactic = new TacticEntity
+ {
+ Name = "Nouvelle tactique",
+ CreationDate = DateTime.Now,
+ OwnerId = 1,
+ Type = CourtType.Plain
+ };
+
+ db.Tactics.Add(newTactic);
+ db.SaveChanges();
+
+ Console.WriteLine("Tactique ajoutée avec succès !");
+ }
+
+ internal static void TestGetAllTactics(AppContext.AppContext db)
+ {
+ var tactics = db.Tactics.ToList();
+ Console.WriteLine("Liste des tactiques :");
+ foreach (var tactic in tactics)
+ {
+ Console.WriteLine($"ID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
+ }
+ }
+
+ internal static void TestFindTacticById(AppContext.AppContext db, int tacticId)
+ {
+ var tactic = db.Tactics.FirstOrDefault(t => t.Id == tacticId);
+ if (tactic != null)
+ {
+ Console.WriteLine($"Tactique trouvée avec l'ID {tacticId}: Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune tactique trouvée avec l'ID {tacticId}");
+ }
+ }
+
+ internal static void TestUpdateTactic(AppContext.AppContext db, int tacticId, string newName)
+ {
+ var tacticToUpdate = db.Tactics.FirstOrDefault(t => t.Id == tacticId);
+ if (tacticToUpdate != null)
+ {
+ tacticToUpdate.Name = newName;
+ db.SaveChanges();
+ Console.WriteLine($"Tactique mise à jour avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune tactique trouvée avec l'ID {tacticId}");
+ }
+ }
+
+ internal static void TestDeleteTactic(AppContext.AppContext db, int tacticId)
+ {
+ var tacticToDelete = db.Tactics.FirstOrDefault(t => t.Id == tacticId);
+ if (tacticToDelete != null)
+ {
+ db.Tactics.Remove(tacticToDelete);
+ db.SaveChanges();
+ Console.WriteLine($"Tactique supprimée avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune tactique trouvée avec l'ID {tacticId}");
+ }
+ }
+
+ internal static void TestGetTacticsByOwner(AppContext.AppContext db, int ownerId)
+ {
+ var tactics = db.Tactics.Where(t => t.OwnerId == ownerId).ToList();
+ Console.WriteLine($"Tactiques de l'utilisateur avec l'ID {ownerId} :");
+ foreach (var tactic in tactics)
+ {
+ Console.WriteLine($"ID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
+ }
+ }
+ }
+}
diff --git a/EFConsole/TacticsStepConsole.cs b/EFConsole/TacticsStepConsole.cs
new file mode 100644
index 0000000..3bca4fa
--- /dev/null
+++ b/EFConsole/TacticsStepConsole.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Linq;
+using AppContext.Entities;
+using Model;
+
+namespace EFConsole
+{
+ public class TacticsStepConsole
+ {
+ public static void TestAddTacticStep(AppContext.AppContext db)
+ {
+ var newTacticStep = new TacticStepEntity
+ {
+ ParentId = 1,
+ TacticId = 1,
+ JsonContent = "{}"
+ };
+
+ db.TacticSteps.Add(newTacticStep);
+ db.SaveChanges();
+
+ Console.WriteLine("Étape de tactique ajoutée avec succès !");
+ }
+
+ public static void TestGetAllTacticSteps(AppContext.AppContext db)
+ {
+ var tacticSteps = db.TacticSteps.ToList();
+ Console.WriteLine("Liste des étapes de tactique :");
+ foreach (var tacticStep in tacticSteps)
+ {
+ Console.WriteLine($"ID : {tacticStep.Id}, ID Tactique : {tacticStep.TacticId}, Contenu JSON : {tacticStep.JsonContent}");
+ }
+ }
+
+ public static void TestGetTacticStepsByTacticId(AppContext.AppContext db, int tacticId)
+ {
+ var tacticSteps = db.TacticSteps.Where(ts => ts.TacticId == tacticId).ToList();
+ Console.WriteLine($"Étapes de tactique pour la tactique avec l'ID {tacticId} :");
+ foreach (var tacticStep in tacticSteps)
+ {
+ Console.WriteLine($"ID : {tacticStep.Id}, ID Tactique : {tacticStep.TacticId}, Contenu JSON : {tacticStep.JsonContent}");
+ }
+ }
+
+ public static void TestUpdateTacticStepContent(AppContext.AppContext db, int tacticStepId, string newContent)
+ {
+ var tacticStepToUpdate = db.TacticSteps.FirstOrDefault(ts => ts.Id == tacticStepId);
+ if (tacticStepToUpdate != null)
+ {
+ tacticStepToUpdate.JsonContent = newContent;
+ db.SaveChanges();
+ Console.WriteLine("Contenu de l'étape de tactique mis à jour avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune étape de tactique trouvée avec l'ID {tacticStepId} pour la mise à jour du contenu.");
+ }
+ }
+
+ public static void TestDeleteTacticStep(AppContext.AppContext db, int tacticStepId)
+ {
+ var tacticStepToDelete = db.TacticSteps.FirstOrDefault(ts => ts.Id == tacticStepId);
+ if (tacticStepToDelete != null)
+ {
+ db.TacticSteps.Remove(tacticStepToDelete);
+ db.SaveChanges();
+ Console.WriteLine("Étape de tactique supprimée avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune étape de tactique trouvée avec l'ID {tacticStepId} pour la suppression.");
+ }
+ }
+ }
+}
diff --git a/EFConsole/TeamsConsole.cs b/EFConsole/TeamsConsole.cs
new file mode 100644
index 0000000..017739a
--- /dev/null
+++ b/EFConsole/TeamsConsole.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Linq;
+using AppContext.Entities;
+
+namespace EFConsole
+{
+ class TeamsConsole
+ {
+ internal static void TestAddTeam(AppContext.AppContext db)
+ {
+ var newTeam = new TeamEntity
+ {
+ Name = "Nouvelle équipe",
+ Picture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png",
+ MainColor = "#0000FF",
+ SecondColor = "#FFFFFF"
+ };
+
+ db.Teams.Add(newTeam);
+ db.SaveChanges();
+
+ Console.WriteLine("Équipe ajoutée avec succès !");
+ }
+
+ internal static void TestGetAllTeams(AppContext.AppContext db)
+ {
+ var teams = db.Teams.ToList();
+ Console.WriteLine("Liste des équipes :");
+ foreach (var team in teams)
+ {
+ Console.WriteLine($"ID : {team.Id}, Nom : {team.Name}, Image : {team.Picture}, Couleur principale : {team.MainColor}, Couleur secondaire : {team.SecondColor}");
+ }
+ }
+
+ internal static void TestGetTeamMembers(AppContext.AppContext db, int teamId)
+ {
+ var team = db.Teams.FirstOrDefault(t => t.Id == teamId);
+ if (team != null)
+ {
+ Console.WriteLine($"Membres de l'équipe '{team.Name}' :");
+ foreach (var member in team.Members)
+ {
+ Console.WriteLine($"ID : {member.UserId}, Nom : {member.User?.Name}, Rôle : {member.Role}");
+ }
+ }
+ else
+ {
+ Console.WriteLine($"Aucune équipe trouvée avec l'ID : {teamId}");
+ }
+ }
+
+ internal static void TestUpdateTeam(AppContext.AppContext db, int teamId, string newName, string newPicture, string newMainColor, string newSecondColor)
+ {
+ var teamToUpdate = db.Teams.FirstOrDefault(t => t.Id == teamId);
+ if (teamToUpdate != null)
+ {
+ teamToUpdate.Name = newName;
+ teamToUpdate.Picture = newPicture;
+ teamToUpdate.MainColor = newMainColor;
+ teamToUpdate.SecondColor = newSecondColor;
+ db.SaveChanges();
+ Console.WriteLine("Équipe mise à jour avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune équipe trouvée avec l'ID : {teamId}");
+ }
+ }
+
+ internal static void TestDeleteTeam(AppContext.AppContext db, int teamId)
+ {
+ var teamToDelete = db.Teams.FirstOrDefault(t => t.Id == teamId);
+ if (teamToDelete != null)
+ {
+ db.Teams.Remove(teamToDelete);
+ db.SaveChanges();
+ Console.WriteLine("Équipe supprimée avec succès !");
+ }
+ else
+ {
+ Console.WriteLine($"Aucune équipe trouvée avec l'ID : {teamId}");
+ }
+ }
+ }
+}
diff --git a/EFConsole/UsersConsole.cs b/EFConsole/UsersConsole.cs
new file mode 100644
index 0000000..d96aaa6
--- /dev/null
+++ b/EFConsole/UsersConsole.cs
@@ -0,0 +1,120 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace EFConsole;
+
+
+class UsersConsole
+{
+ internal static void TestAddUser(AppContext.AppContext db)
+ {
+ var newUser = new AppContext.Entities.UserEntity
+ {
+ Name = "Pierre",
+ Email = "pierre@mail.com",
+ Password = "123456",
+ ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png",
+ IsAdmin = false
+ };
+
+ db.Users.Add(newUser);
+ db.SaveChanges();
+
+ Console.WriteLine("Utilisateur ajouté avec succès !");
+ }
+
+ internal static void TestGetAllUsers(AppContext.AppContext db)
+ {
+ var users = db.Users.ToList();
+ Console.WriteLine("Liste des utilisateurs :");
+ foreach (var user in users)
+ {
+ Console.WriteLine($"ID : {user.Id}, Nom : {user.Name}, Email : {user.Email}");
+ }
+ }
+
+ internal static void TestFindUserByMail(AppContext.AppContext db, string userEmail)
+ {
+ var userByEmail = db.Users.FirstOrDefault(u => u.Email == userEmail);
+ if (userByEmail != null)
+ {
+ Console.WriteLine($"Utilisateur trouvé par email : {userByEmail.Name}");
+ }
+ else
+ {
+ Console.WriteLine($"Aucun utilisateur trouvé avec l'email : {userEmail}");
+ }
+ }
+
+ internal static void TestUpdateUser(AppContext.AppContext db)
+ {
+ var userToUpdate = db.Users.FirstOrDefault(u => u.Name == "Pierre");
+ if (userToUpdate != null)
+ {
+ userToUpdate.Name = "Paul";
+ db.SaveChanges();
+ Console.WriteLine("Utilisateur mis à jour avec succès !");
+ }
+ else
+ {
+ Console.WriteLine("Utilisateur non trouvé pour la mise à jour.");
+ }
+ }
+
+ internal static void TestDeleteUser(AppContext.AppContext db)
+ {
+ var userToDelete = db.Users.FirstOrDefault(u => u.Name == "Paul");
+ if (userToDelete != null)
+ {
+ db.Users.Remove(userToDelete);
+ db.SaveChanges();
+ Console.WriteLine("Utilisateur supprimé avec succès !");
+ }
+ else
+ {
+ Console.WriteLine("Utilisateur non trouvé pour la suppression.");
+ }
+ }
+
+ internal static void TestSearchUsersByName(AppContext.AppContext db, string userName)
+ {
+ var usersByName = db.Users.Where(u => u.Name == userName).ToList();
+ Console.WriteLine($"Utilisateurs avec le nom '{userName}' :");
+ foreach (var user in usersByName)
+ {
+ Console.WriteLine($"ID : {user.Id}, Nom : {user.Name}, Email : {user.Email}");
+ }
+ }
+
+ internal static void TestGetTacticsOfAllUsers(AppContext.AppContext db)
+ {
+ Console.WriteLine("Récupération des tactiques de tous les utilisateurs :");
+
+ var users = db.Users.Include(u => u.Tactics).ToList();
+ foreach (var user in users)
+ {
+ Console.WriteLine($"Tactiques de l'utilisateur {user.Name}:");
+ foreach (var tactic in user.Tactics)
+ {
+ Console.WriteLine($"\tID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
+ }
+ }
+ }
+
+ internal static void TestGetTacticsOfOneUser(AppContext.AppContext db, int userId)
+ {
+ var user = db.Users.Include(u => u.Tactics).FirstOrDefault(u => u.Id == userId);
+ if (user != null)
+ {
+ Console.WriteLine($"Récupération des tactiques de l'utilisateur {user.Name}:");
+ foreach (var tactic in user.Tactics)
+ {
+ Console.WriteLine($"\tID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
+ }
+ }
+ else
+ {
+ Console.WriteLine($"Aucun utilisateur trouvé avec l'ID : {userId}");
+ }
+ }
+
+}
diff --git a/WebAPI.sln b/WebAPI.sln
index ba34e6d..a6888fe 100644
--- a/WebAPI.sln
+++ b/WebAPI.sln
@@ -16,6 +16,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Converters", "Converters\Co
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\UnitTests.csproj", "{82A100BE-5610-4741-8F23-1CD653E8EFCD}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EFConsole", "EFConsole\EFConsole.csproj", "{DC9ACDB3-83BC-4DF2-84C7-070361648975}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "APIConsole", "APIConsole\APIConsole.csproj", "{B01BD72E-15D3-4DC6-8DAC-2270A01129A9}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -62,5 +66,13 @@ Global
{82A100BE-5610-4741-8F23-1CD653E8EFCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82A100BE-5610-4741-8F23-1CD653E8EFCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82A100BE-5610-4741-8F23-1CD653E8EFCD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DC9ACDB3-83BC-4DF2-84C7-070361648975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DC9ACDB3-83BC-4DF2-84C7-070361648975}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DC9ACDB3-83BC-4DF2-84C7-070361648975}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DC9ACDB3-83BC-4DF2-84C7-070361648975}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal