From af4f9c8ba0d64724de2e085d231cf5db400ee39c Mon Sep 17 00:00:00 2001 From: Leni BEAULATON Date: Fri, 28 Mar 2025 11:04:56 +0100 Subject: [PATCH 1/3] Services API --- WF_EF_Api/Dto2Entities/Extention.cs | 10 ++ WF_EF_Api/ServicesApi/ServicesApi.csproj | 9 ++ WF_EF_Api/ServicesApi/UserService.cs | 92 +++++++++++++++++++ .../{QuoteService.cs => QuoteServiceStub.cs} | 4 +- .../{UserService.cs => UserServiceStub.cs} | 4 +- WF_EF_Api/WfApi/Program.cs | 11 ++- 6 files changed, 123 insertions(+), 7 deletions(-) create mode 100644 WF_EF_Api/ServicesApi/ServicesApi.csproj create mode 100644 WF_EF_Api/ServicesApi/UserService.cs rename WF_EF_Api/StubApi/{QuoteService.cs => QuoteServiceStub.cs} (97%) rename WF_EF_Api/StubApi/{UserService.cs => UserServiceStub.cs} (96%) diff --git a/WF_EF_Api/Dto2Entities/Extention.cs b/WF_EF_Api/Dto2Entities/Extention.cs index fb300ef..ad38331 100644 --- a/WF_EF_Api/Dto2Entities/Extention.cs +++ b/WF_EF_Api/Dto2Entities/Extention.cs @@ -119,6 +119,16 @@ namespace Dto2Entities return user; } + public static List ToDto(this List users) + { + List userDTOs = new List(); + foreach (Users user in users) + { + userDTOs.Add(ToDto(user)); + } + return userDTOs; + } + public static TypeLangageDTO ToDto(this LangEnum item) { switch (item) diff --git a/WF_EF_Api/ServicesApi/ServicesApi.csproj b/WF_EF_Api/ServicesApi/ServicesApi.csproj new file mode 100644 index 0000000..bb23fb7 --- /dev/null +++ b/WF_EF_Api/ServicesApi/ServicesApi.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/WF_EF_Api/ServicesApi/UserService.cs b/WF_EF_Api/ServicesApi/UserService.cs new file mode 100644 index 0000000..cf71433 --- /dev/null +++ b/WF_EF_Api/ServicesApi/UserService.cs @@ -0,0 +1,92 @@ +using Shared; +using DTO; +using Contextlib; +using Entity; +using System.Xml.XPath; +using Dto2Entities; +namespace ServicesApi +{ + public class UserService : IUserService + { + + private IUserService userService; + + public UserService(IUserService user) + { + userService = user; + } + + public async Task AddUser(UserDTO user) + { + //await userService.AddUser(user); Quand les toEntity seront présents + } + + public async Task CountUser() + { + return await userService.CountUser(); + } + + public async Task ExistEmail(string email) + { + return await userService.ExistEmail(email); + } + + public async Task ExistUsername(string username) + { + return await userService.ExistUsername(username); + } + + public async Task> GetAllUser() + { + var users = userService.GetAllUser().Result.items; + return new PaginationResult(users.Count(), 0, 10, users.ToDto()); + } + + public async Task GetHashPassword(string username) + { + return await userService.GetHashPassword(username); + } + + public async Task GetLastUserId() + { + return await userService.GetLastUserId(); + } + + public async Task> GetSomeUser(int index, int pageSize) + { + var users = userService.GetSomeUser(index, pageSize).Result.items; + return new PaginationResult(users.Count(),index, pageSize, users.ToDto()); + } + + public async Task GetUserByEmail(string email) + { + return userService.GetUserByEmail(email).Result.ToDto(); + } + + public async Task GetUserById(int id) + { + return userService.GetUserById(id).Result.ToDto(); + } + + public async Task GetUserByUsername(string username) + { + return userService.GetUserByUsername(username).Result.ToDto(); + } + + public async Task RemoveUser(UserDTO user) + { + //await userService.RemoveUser(user); Quand les toEntity seront présents + } + + public async Task SetAdminRole(bool isAdmin) + { + await userService.SetAdminRole(isAdmin); + } + + public async Task UpdateUser(int userId, UserDTO user) + { + //await userService.UpdateUser(userId, user); Quand les toEntity seront présents + throw new NotImplementedException(); + } + } +} diff --git a/WF_EF_Api/StubApi/QuoteService.cs b/WF_EF_Api/StubApi/QuoteServiceStub.cs similarity index 97% rename from WF_EF_Api/StubApi/QuoteService.cs rename to WF_EF_Api/StubApi/QuoteServiceStub.cs index 53e261d..f0521b3 100644 --- a/WF_EF_Api/StubApi/QuoteService.cs +++ b/WF_EF_Api/StubApi/QuoteServiceStub.cs @@ -8,11 +8,11 @@ using System.Threading.Tasks; namespace StubApi { - public class QuoteService : IQuoteService + public class QuoteServiceStub : IQuoteService { private readonly List _quotes; - public QuoteService() + public QuoteServiceStub() { _quotes = new List { diff --git a/WF_EF_Api/StubApi/UserService.cs b/WF_EF_Api/StubApi/UserServiceStub.cs similarity index 96% rename from WF_EF_Api/StubApi/UserService.cs rename to WF_EF_Api/StubApi/UserServiceStub.cs index 315d9a5..b9c21f8 100644 --- a/WF_EF_Api/StubApi/UserService.cs +++ b/WF_EF_Api/StubApi/UserServiceStub.cs @@ -2,11 +2,11 @@ using DTO; namespace StubApi { - public class UserService : IUserService + public class UserServiceStub : IUserService { private readonly List _users; - public UserService() + public UserServiceStub() { _users = new List { diff --git a/WF_EF_Api/WfApi/Program.cs b/WF_EF_Api/WfApi/Program.cs index 5813f96..4232aa1 100644 --- a/WF_EF_Api/WfApi/Program.cs +++ b/WF_EF_Api/WfApi/Program.cs @@ -1,11 +1,16 @@ using DTO; using Shared; using StubApi; - +using Contextlib; +using Entity; var builder = WebApplication.CreateBuilder(args); +//API +builder.Services.AddScoped, UserServiceStub>(); +builder.Services.AddScoped, QuoteServiceStub>(); + -builder.Services.AddScoped, UserService>(); -builder.Services.AddScoped, QuoteService>(); +//EF +builder.Services.AddScoped, DbUsersManager>(); // Add services to the container. builder.Services.AddControllers(); From 4d2985f73f0e5fb0a7fbd2d2c3393ee29817b91a Mon Sep 17 00:00:00 2001 From: Leni BEAULATON Date: Fri, 28 Mar 2025 11:07:12 +0100 Subject: [PATCH 2/3] Services API --- WF_EF_Api/ServicesApi/UserService.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/WF_EF_Api/ServicesApi/UserService.cs b/WF_EF_Api/ServicesApi/UserService.cs index cf71433..367cd2b 100644 --- a/WF_EF_Api/ServicesApi/UserService.cs +++ b/WF_EF_Api/ServicesApi/UserService.cs @@ -16,9 +16,11 @@ namespace ServicesApi userService = user; } + + public async Task AddUser(UserDTO user) { - //await userService.AddUser(user); Quand les toEntity seront présents + await userService.AddUser(user.ToEntity()); } public async Task CountUser() @@ -75,7 +77,7 @@ namespace ServicesApi public async Task RemoveUser(UserDTO user) { - //await userService.RemoveUser(user); Quand les toEntity seront présents + await userService.RemoveUser(user.ToEntity()); } public async Task SetAdminRole(bool isAdmin) @@ -85,7 +87,7 @@ namespace ServicesApi public async Task UpdateUser(int userId, UserDTO user) { - //await userService.UpdateUser(userId, user); Quand les toEntity seront présents + await userService.UpdateUser(userId, user.ToEntity()); throw new NotImplementedException(); } } From 3029f097bc9e3f962226e9afd6d86541d4aeb5d4 Mon Sep 17 00:00:00 2001 From: Leni BEAULATON Date: Fri, 28 Mar 2025 11:24:26 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Normalement=20=C3=A7a=20marche,=20j'ai=20ju?= =?UTF-8?q?ste=20un=20pb=20de=20commande=20dotnet=20qui=20n'est=20pas=20re?= =?UTF-8?q?connu=20sur=20la=20machine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WF_EF_Api/Contextlib/WTFContext.cs | 6 +++--- WF_EF_Api/Entity/Users.cs | 6 +++--- WF_EF_Api/ServicesApi/ServicesApi.csproj | 7 +++++++ WF_EF_Api/WF_EF_Api.sln | 11 ++++++----- WF_EF_Api/WfApi/Program.cs | 5 ++++- WF_EF_Api/WfApi/WfApi.csproj | 4 ++++ 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/WF_EF_Api/Contextlib/WTFContext.cs b/WF_EF_Api/Contextlib/WTFContext.cs index 2706b88..e82284d 100644 --- a/WF_EF_Api/Contextlib/WTFContext.cs +++ b/WF_EF_Api/Contextlib/WTFContext.cs @@ -75,9 +75,9 @@ namespace Contextlib l => l.HasOne().WithMany().HasForeignKey(q => q.IdQuestion), r => r.HasOne().WithMany().HasForeignKey(u => u.IdQuiz) ); - modelBuilder.Entity() - .HasOne(a => a.User) - .WithOne(u => u.admin); + //modelBuilder.Entity() + // .HasOne(a => a.User) + // .WithOne(u => u.admin); } public WTFContext() diff --git a/WF_EF_Api/Entity/Users.cs b/WF_EF_Api/Entity/Users.cs index 6b834eb..abcf80e 100644 --- a/WF_EF_Api/Entity/Users.cs +++ b/WF_EF_Api/Entity/Users.cs @@ -40,8 +40,8 @@ namespace Entity public ICollection Favorite { get; set; } = new List(); - [ForeignKey(nameof(Admin))] - public int Idadmin { get; set; } - public Admin admin { get; set; } + //[ForeignKey(nameof(Admin))] + //public int Idadmin { get; set; } + //public Admin admin { get; set; } } } diff --git a/WF_EF_Api/ServicesApi/ServicesApi.csproj b/WF_EF_Api/ServicesApi/ServicesApi.csproj index bb23fb7..89650c8 100644 --- a/WF_EF_Api/ServicesApi/ServicesApi.csproj +++ b/WF_EF_Api/ServicesApi/ServicesApi.csproj @@ -6,4 +6,11 @@ enable + + + + + + + diff --git a/WF_EF_Api/WF_EF_Api.sln b/WF_EF_Api/WF_EF_Api.sln index 728c68b..bb798b1 100644 --- a/WF_EF_Api/WF_EF_Api.sln +++ b/WF_EF_Api/WF_EF_Api.sln @@ -1,4 +1,3 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34723.18 @@ -25,6 +24,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DTO", "DTO\DTO.csproj", "{9 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dto2Entities", "Dto2Entities\Dto2Entities.csproj", "{08194729-E222-4C9A-B860-D944225B8895}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServicesApi", "ServicesApi\ServicesApi.csproj", "{6A9AC3D2-C1CD-450A-BD3C-22FAFC9B5328}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -55,10 +56,6 @@ Global {2CF20FAC-C2F1-4048-9D46-F39081B0FBEF}.Debug|Any CPU.Build.0 = Debug|Any CPU {2CF20FAC-C2F1-4048-9D46-F39081B0FBEF}.Release|Any CPU.ActiveCfg = Release|Any CPU {2CF20FAC-C2F1-4048-9D46-F39081B0FBEF}.Release|Any CPU.Build.0 = Release|Any CPU - {4A1CBA3D-C798-4E19-865F-39F919F1205A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4A1CBA3D-C798-4E19-865F-39F919F1205A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A1CBA3D-C798-4E19-865F-39F919F1205A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4A1CBA3D-C798-4E19-865F-39F919F1205A}.Release|Any CPU.Build.0 = Release|Any CPU {48002CA2-7CFF-4077-90CF-392476320CE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {48002CA2-7CFF-4077-90CF-392476320CE3}.Debug|Any CPU.Build.0 = Debug|Any CPU {48002CA2-7CFF-4077-90CF-392476320CE3}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -79,6 +76,10 @@ Global {08194729-E222-4C9A-B860-D944225B8895}.Debug|Any CPU.Build.0 = Debug|Any CPU {08194729-E222-4C9A-B860-D944225B8895}.Release|Any CPU.ActiveCfg = Release|Any CPU {08194729-E222-4C9A-B860-D944225B8895}.Release|Any CPU.Build.0 = Release|Any CPU + {6A9AC3D2-C1CD-450A-BD3C-22FAFC9B5328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A9AC3D2-C1CD-450A-BD3C-22FAFC9B5328}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A9AC3D2-C1CD-450A-BD3C-22FAFC9B5328}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A9AC3D2-C1CD-450A-BD3C-22FAFC9B5328}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/WF_EF_Api/WfApi/Program.cs b/WF_EF_Api/WfApi/Program.cs index 4232aa1..524f35a 100644 --- a/WF_EF_Api/WfApi/Program.cs +++ b/WF_EF_Api/WfApi/Program.cs @@ -3,13 +3,16 @@ using Shared; using StubApi; using Contextlib; using Entity; +using StubbedContextLib; +using ServicesApi; var builder = WebApplication.CreateBuilder(args); //API -builder.Services.AddScoped, UserServiceStub>(); +builder.Services.AddScoped, UserService>(); builder.Services.AddScoped, QuoteServiceStub>(); //EF +builder.Services.AddScoped(); builder.Services.AddScoped, DbUsersManager>(); // Add services to the container. diff --git a/WF_EF_Api/WfApi/WfApi.csproj b/WF_EF_Api/WfApi/WfApi.csproj index ab7442c..0416a92 100644 --- a/WF_EF_Api/WfApi/WfApi.csproj +++ b/WF_EF_Api/WfApi/WfApi.csproj @@ -17,9 +17,13 @@ + + + +