From 2b5fb10ee420bb08a6ee50939daebcd81dc34c6a Mon Sep 17 00:00:00 2001 From: iSQL Date: Thu, 29 Aug 2024 16:44:09 +0200 Subject: [PATCH 1/2] - Cleanup migrations, and add basic classifieds module with private messagings --- .../Domain/Classifieds/ClassifiedAd.cs | 15 +- .../Domain/Classifieds/ClassifiedMessage.cs | 8 +- .../Domain/Classifieds/ClassifiedUser.cs | 3 +- BaseServerTest.sln | 2 +- BaseServerTest/BaseServerTest.csproj | 4 + .../Components/Layout/NavMenu.razor | 3 + .../Components/Pages/Classifieds.razor | 30 -- .../Pages/Classifieds/AdDetail.razor | 15 + .../Pages/Classifieds/AdDetail.razor.cs | 27 ++ .../Pages/Classifieds/AddMessages.razor | 17 + .../Pages/Classifieds/AddMessages.razor.cs | 22 + .../Pages/Classifieds/ClassifiedsMain.razor | 36 ++ .../Classifieds/ClassifiedsMain.razor.cs | 40 ++ .../Pages/Classifieds/ContactSeller.razor | 15 + .../Pages/Classifieds/ContactSeller.razor.cs | 44 ++ .../Components/Pages/Classifieds/PostAd.razor | 36 ++ .../Pages/Classifieds/PostAd.razor.cs | 100 +++++ .../Classifieds/IClassifiedAdRepository.cs | 10 + .../IClassifiedMessageRepository.cs | 10 + .../Classifieds/IClassifiedUserRepository.cs | 9 + .../Contracts/Repositories/IRepositoryBase.cs | 11 + .../Classifieds/IClassifiedAdService.cs | 15 + .../Classifieds/IClassifiedMessageService.cs | 12 + .../Classifieds/IClassifiedUserService.cs | 14 + ...000000000_CreateIdentitySchema.Designer.cs | 279 ------------- ...240731145108_AddedAppointments.Designer.cs | 353 ---------------- .../20240731145108_AddedAppointments.cs | 53 --- ...20240731191213_DodatSrecniBroj.Designer.cs | 356 ---------------- .../20240731191213_DodatSrecniBroj.cs | 29 -- ...821195540_AddedChatPersistancy.Designer.cs | 384 ------------------ .../20240821195540_AddedChatPersistancy.cs | 94 ----- ...20240827182603_CreateClassifiedEntities.cs | 180 -------- .../20240829090657_InitialCreate.Designer.cs} | 65 ++- .../20240829090657_InitialCreate.cs} | 161 +++++++- .../ApplicationDbContextModelSnapshot.cs | 61 ++- BaseServerTest/Program.cs | 14 + .../Classifieds/ClassifiedAdRepository.cs | 29 ++ .../ClassifiedMessageRepository.cs | 32 ++ .../Classifieds/ClassifiedUserRepository.cs | 20 + BaseServerTest/Repositories/RepositoryBase.cs | 45 ++ .../Classifieds/ClassifiedAdService.cs | 57 +++ .../Classifieds/ClassifiedMessageService.cs | 32 ++ .../Classifieds/ClassifiedUserService.cs | 73 ++++ 43 files changed, 973 insertions(+), 1842 deletions(-) delete mode 100644 BaseServerTest/Components/Pages/Classifieds.razor create mode 100644 BaseServerTest/Components/Pages/Classifieds/AdDetail.razor create mode 100644 BaseServerTest/Components/Pages/Classifieds/AdDetail.razor.cs create mode 100644 BaseServerTest/Components/Pages/Classifieds/AddMessages.razor create mode 100644 BaseServerTest/Components/Pages/Classifieds/AddMessages.razor.cs create mode 100644 BaseServerTest/Components/Pages/Classifieds/ClassifiedsMain.razor create mode 100644 BaseServerTest/Components/Pages/Classifieds/ClassifiedsMain.razor.cs create mode 100644 BaseServerTest/Components/Pages/Classifieds/ContactSeller.razor create mode 100644 BaseServerTest/Components/Pages/Classifieds/ContactSeller.razor.cs create mode 100644 BaseServerTest/Components/Pages/Classifieds/PostAd.razor create mode 100644 BaseServerTest/Components/Pages/Classifieds/PostAd.razor.cs create mode 100644 BaseServerTest/Contracts/Repositories/Classifieds/IClassifiedAdRepository.cs create mode 100644 BaseServerTest/Contracts/Repositories/Classifieds/IClassifiedMessageRepository.cs create mode 100644 BaseServerTest/Contracts/Repositories/Classifieds/IClassifiedUserRepository.cs create mode 100644 BaseServerTest/Contracts/Repositories/IRepositoryBase.cs create mode 100644 BaseServerTest/Contracts/Services/Classifieds/IClassifiedAdService.cs create mode 100644 BaseServerTest/Contracts/Services/Classifieds/IClassifiedMessageService.cs create mode 100644 BaseServerTest/Contracts/Services/Classifieds/IClassifiedUserService.cs delete mode 100644 BaseServerTest/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs delete mode 100644 BaseServerTest/Data/Migrations/20240731145108_AddedAppointments.Designer.cs delete mode 100644 BaseServerTest/Data/Migrations/20240731145108_AddedAppointments.cs delete mode 100644 BaseServerTest/Data/Migrations/20240731191213_DodatSrecniBroj.Designer.cs delete mode 100644 BaseServerTest/Data/Migrations/20240731191213_DodatSrecniBroj.cs delete mode 100644 BaseServerTest/Data/Migrations/20240821195540_AddedChatPersistancy.Designer.cs delete mode 100644 BaseServerTest/Data/Migrations/20240821195540_AddedChatPersistancy.cs delete mode 100644 BaseServerTest/Data/Migrations/20240827182603_CreateClassifiedEntities.cs rename BaseServerTest/{Data/Migrations/20240827182603_CreateClassifiedEntities.Designer.cs => Migrations/20240829090657_InitialCreate.Designer.cs} (91%) rename BaseServerTest/{Data/Migrations/00000000000000_CreateIdentitySchema.cs => Migrations/20240829090657_InitialCreate.cs} (55%) rename BaseServerTest/{Data => }/Migrations/ApplicationDbContextModelSnapshot.cs (92%) create mode 100644 BaseServerTest/Repositories/Classifieds/ClassifiedAdRepository.cs create mode 100644 BaseServerTest/Repositories/Classifieds/ClassifiedMessageRepository.cs create mode 100644 BaseServerTest/Repositories/Classifieds/ClassifiedUserRepository.cs create mode 100644 BaseServerTest/Repositories/RepositoryBase.cs create mode 100644 BaseServerTest/Services/Classifieds/ClassifiedAdService.cs create mode 100644 BaseServerTest/Services/Classifieds/ClassifiedMessageService.cs create mode 100644 BaseServerTest/Services/Classifieds/ClassifiedUserService.cs diff --git a/BaseServerTest.Shared/Domain/Classifieds/ClassifiedAd.cs b/BaseServerTest.Shared/Domain/Classifieds/ClassifiedAd.cs index c4ac31d..6503307 100644 --- a/BaseServerTest.Shared/Domain/Classifieds/ClassifiedAd.cs +++ b/BaseServerTest.Shared/Domain/Classifieds/ClassifiedAd.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -8,17 +9,27 @@ namespace BaseServerTest.Shared.Domain.Classifieds { public class ClassifiedAd { - public int Id { get; set; } + public string Id { get; set; } + + [Required] public string Title { get; set; } + + [Required] public string Description { get; set; } + + [Required] public string Category { get; set; } + + [Range(0, double.MaxValue, ErrorMessage = "Price must be a positive value")] public decimal Price { get; set; } + public DateTime DatePosted { get; set; } public bool IsActive { get; set; } - public int UserId { get; set; } + public string UserId { get; set; } // Navigation Properties public ClassifiedUser User { get; set; } public ICollection Messages { get; set; } } + } diff --git a/BaseServerTest.Shared/Domain/Classifieds/ClassifiedMessage.cs b/BaseServerTest.Shared/Domain/Classifieds/ClassifiedMessage.cs index 20906cc..bf15b7b 100644 --- a/BaseServerTest.Shared/Domain/Classifieds/ClassifiedMessage.cs +++ b/BaseServerTest.Shared/Domain/Classifieds/ClassifiedMessage.cs @@ -8,12 +8,12 @@ namespace BaseServerTest.Shared.Domain.Classifieds { public class ClassifiedMessage { - public int Id { get; set; } + public string Id { get; set; } public string Content { get; set; } public DateTime DateSent { get; set; } - public int SenderId { get; set; } - public int ReceiverId { get; set; } - public int ClassifiedAdId { get; set; } + public string SenderId { get; set; } + public string ReceiverId { get; set; } + public string ClassifiedAdId { get; set; } // Navigation Properties public ClassifiedUser Sender { get; set; } diff --git a/BaseServerTest.Shared/Domain/Classifieds/ClassifiedUser.cs b/BaseServerTest.Shared/Domain/Classifieds/ClassifiedUser.cs index 405ed10..ec08b10 100644 --- a/BaseServerTest.Shared/Domain/Classifieds/ClassifiedUser.cs +++ b/BaseServerTest.Shared/Domain/Classifieds/ClassifiedUser.cs @@ -8,10 +8,9 @@ namespace BaseServerTest.Shared.Domain.Classifieds { public class ClassifiedUser { - public int Id { get; set; } + public string Id { get; set; } public string UserName { get; set; } public string Email { get; set; } - public string PasswordHash { get; set; } public DateTime DateRegistered { get; set; } // Navigation Properties diff --git a/BaseServerTest.sln b/BaseServerTest.sln index ad58d22..57834b4 100644 --- a/BaseServerTest.sln +++ b/BaseServerTest.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 17.8.34525.116 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BaseServerTest", "BaseServerTest\BaseServerTest.csproj", "{392E3F17-800B-4E3C-BBD1-E1CE6C7F295E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BaseServerTest.Shared", "BaseServerTest.Shared\BaseServerTest.Shared.csproj", "{B016785B-B08D-4F2C-8DA8-18411A26D30D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BaseServerTest.Shared", "BaseServerTest.Shared\BaseServerTest.Shared.csproj", "{B016785B-B08D-4F2C-8DA8-18411A26D30D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/BaseServerTest/BaseServerTest.csproj b/BaseServerTest/BaseServerTest.csproj index d651594..6512563 100644 --- a/BaseServerTest/BaseServerTest.csproj +++ b/BaseServerTest/BaseServerTest.csproj @@ -20,4 +20,8 @@ + + + + diff --git a/BaseServerTest/Components/Layout/NavMenu.razor b/BaseServerTest/Components/Layout/NavMenu.razor index 68e8db7..b29cbfa 100644 --- a/BaseServerTest/Components/Layout/NavMenu.razor +++ b/BaseServerTest/Components/Layout/NavMenu.razor @@ -46,6 +46,9 @@ Novosti + Classifieds + Post Ad + Messages