From 8af9b95fc54813d45349abbfa0a9ba72b8caaea4 Mon Sep 17 00:00:00 2001 From: Loretta Date: Fri, 15 Nov 2024 06:15:34 +0100 Subject: [PATCH] auction improvements --- .../AuctionPluginAdminController.cs | 7 ++-- .../Areas/Admin/Models/TestPageViewModel.cs | 1 + .../AuctionPlugin.cs | 2 +- .../Domains/DataLayer/AuctionBidDbTable.cs | 5 +-- .../Domains/DataLayer/AuctionDbContext.cs | 20 +++++++++++ .../Domains/DataLayer/AuctionDbTable.cs | 6 ++-- .../Domains/Entities/AuctionBid.cs | 2 ++ .../Infrastructure/PluginNopStartup.cs | 5 +++ .../Services/AuctionService.cs | 34 +++++++++++-------- .../Services/IAuctionService.cs | 2 ++ 10 files changed, 63 insertions(+), 21 deletions(-) diff --git a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AuctionPluginAdminController.cs b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AuctionPluginAdminController.cs index 207ad77..808184e 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AuctionPluginAdminController.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AuctionPluginAdminController.cs @@ -110,10 +110,13 @@ public class AuctionPluginAdminController : BasePluginController } - public IActionResult TestPage() + public async Task TestPage() { var model = new TestPageViewModel(); - model.Message = "Teszt üzenet"; + + var auctions = await _auctionService.GetAllAuctionsAsync(); + model.Message = $"Teszt üzenet; Auctions count: {auctions.Count}"; + return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/TestPage.cshtml", model); } diff --git a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/TestPageViewModel.cs b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/TestPageViewModel.cs index 3f9586d..b18ed87 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/TestPageViewModel.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/TestPageViewModel.cs @@ -13,5 +13,6 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Models public string Title { get; set; } public string Message { get; set; } public Auction TestAuction { get; set; } + } } diff --git a/Nop.Plugin.Misc.AuctionPlugin/AuctionPlugin.cs b/Nop.Plugin.Misc.AuctionPlugin/AuctionPlugin.cs index 2f03659..7eb3323 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/AuctionPlugin.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/AuctionPlugin.cs @@ -116,7 +116,7 @@ namespace Nop.Plugin.Misc.AuctionPlugin { return Task.FromResult>(new List { - PublicWidgetZones.ProductPriceTop, + PublicWidgetZones.ProductDetailsInsideOverviewButtonsBefore, PublicWidgetZones.ProductDetailsBottom, //AdminWidgetZones.OrderBillingAddressDetailsBottom, diff --git a/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionBidDbTable.cs b/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionBidDbTable.cs index 509a1c1..d220bfe 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionBidDbTable.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionBidDbTable.cs @@ -1,4 +1,5 @@ -using Nop.Core.Caching; +using Mango.Nop.Core.Repositories; +using Nop.Core.Caching; using Nop.Core.Configuration; using Nop.Core.Events; using Nop.Data; @@ -6,7 +7,7 @@ using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer; -public class AuctionBidDbTable: EntityRepository +public class AuctionBidDbTable: MgDbTableBase { public AuctionBidDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings) : base(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings) { diff --git a/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbContext.cs b/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbContext.cs index 5d75a03..d38eb52 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbContext.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbContext.cs @@ -1,6 +1,7 @@ using Mango.Nop.Core.Repositories; using Nop.Data; using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; +using System; namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer; @@ -8,4 +9,23 @@ public class AuctionDbContext : MgDbContextBase, IAuctionDbSet, { public AuctionDbTable Auctions { get; set; } public AuctionBidDbTable AuctionBids { get; set; } + + public EntityRepository Auctions2 { get; set; } + public IRepository AuctionBids2 { get; set; } + + + public AuctionDbContext(INopDataProvider dataProvider, AuctionDbTable auctionDbTable, AuctionBidDbTable auctionBidDbTable) : base(dataProvider) + { + Auctions = auctionDbTable; + AuctionBids = auctionBidDbTable; + + //Auctions.Table + var auctions = DataProvider.GetTable().Where(x => x.Closed); + } + + //public AuctionDbContext(IRepository _auctionRepository, IRepository _auctionBidRepository) + //{ + // Auctions2 = _auctionRepository as EntityRepository; + // AuctionBids2 = _auctionBidRepository; + //} } \ No newline at end of file diff --git a/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbTable.cs b/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbTable.cs index 182be9e..3c9948b 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbTable.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Domains/DataLayer/AuctionDbTable.cs @@ -1,4 +1,6 @@ -using Nop.Core.Caching; +using Mango.Nop.Core.Entities; +using Mango.Nop.Core.Repositories; +using Nop.Core.Caching; using Nop.Core.Configuration; using Nop.Core.Events; using Nop.Data; @@ -6,7 +8,7 @@ using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer; -public class AuctionDbTable: EntityRepository +public class AuctionDbTable: MgDbTableBase { public AuctionDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings) : base(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings) { diff --git a/Nop.Plugin.Misc.AuctionPlugin/Domains/Entities/AuctionBid.cs b/Nop.Plugin.Misc.AuctionPlugin/Domains/Entities/AuctionBid.cs index fb43fff..04b26db 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Domains/Entities/AuctionBid.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Domains/Entities/AuctionBid.cs @@ -7,6 +7,8 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities { public class AuctionBid : EntityBase, ITimeStampInfo//, ISoftRemoveEntityInt { + public int ProductAuctionMappingId { get; set; } + public int CustomerId { get; set; } public int ProductId { get; set; } diff --git a/Nop.Plugin.Misc.AuctionPlugin/Infrastructure/PluginNopStartup.cs b/Nop.Plugin.Misc.AuctionPlugin/Infrastructure/PluginNopStartup.cs index 73564b9..247364c 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Infrastructure/PluginNopStartup.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Infrastructure/PluginNopStartup.cs @@ -8,6 +8,7 @@ using Nop.Core; using Nop.Core.Caching; using Nop.Core.Infrastructure; using Nop.Data; +using Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer; using Nop.Plugin.Misc.AuctionPlugin.Hubs; using Nop.Plugin.Misc.AuctionPlugin.Services; using Nop.Services.Catalog; @@ -51,6 +52,10 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Infrastructure services.AddScoped(); services.AddScoped(); services.AddScoped(); + + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); } /// diff --git a/Nop.Plugin.Misc.AuctionPlugin/Services/AuctionService.cs b/Nop.Plugin.Misc.AuctionPlugin/Services/AuctionService.cs index 7beeb68..8e0d238 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Services/AuctionService.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Services/AuctionService.cs @@ -2,6 +2,7 @@ using Nop.Core.Caching; using Nop.Data; using Nop.Plugin.Misc.AuctionPlugin.Domains; +using Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer; using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; namespace Nop.Plugin.Misc.AuctionPlugin.Services; @@ -26,8 +27,9 @@ public class AuctionService : IAuctionService #region Fields - protected readonly IRepository _customerBidRepository; - protected readonly IRepository _auctionRepository; + protected readonly AuctionDbContext _ctx; + //protected readonly IRepository _customerBidRepository; + //protected readonly IRepository _auctionRepository; protected readonly IShortTermCacheManager _shortTermCacheManager; protected readonly IStaticCacheManager _staticCacheManager; @@ -41,14 +43,12 @@ public class AuctionService : IAuctionService /// Store pickup point repository /// Short term cache manager /// Cache manager - public AuctionService( - IRepository customerBidRepository, - IRepository auctionRepository, - IShortTermCacheManager shortTermCacheManager, - IStaticCacheManager staticCacheManager) + public AuctionService(AuctionDbContext ctx, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager) { - _customerBidRepository = customerBidRepository; - _auctionRepository = auctionRepository; + _ctx = ctx; + //_customerBidRepository = customerBidRepository; + //_auctionRepository = auctionRepository; + _shortTermCacheManager = shortTermCacheManager; _staticCacheManager = staticCacheManager; } @@ -84,18 +84,18 @@ public class AuctionService : IAuctionService public virtual async Task GetBidByIdAsync(int bidId) { - return await _customerBidRepository.GetByIdAsync(bidId); + return await _ctx.AuctionBids.GetByIdAsync(bidId); } public virtual async Task InsertBidAsync(AuctionBid auctionBid) { - await _customerBidRepository.InsertAsync(auctionBid, false); + await _ctx.AuctionBids.InsertAsync(auctionBid, false); await _staticCacheManager.RemoveByPrefixAsync(AUCTION_PATTERN_KEY); } public virtual async Task UpdateBidAsync(AuctionBid auctionBid) { - await _customerBidRepository.UpdateAsync(auctionBid, false); + await _ctx.AuctionBids.UpdateAsync(auctionBid, false); await _staticCacheManager.RemoveByPrefixAsync(AUCTION_PATTERN_KEY); } @@ -106,16 +106,22 @@ public class AuctionService : IAuctionService /// A task that represents the asynchronous operation public virtual async Task DeleteBidAsync(AuctionBid pickupPoint) { - await _customerBidRepository.DeleteAsync(pickupPoint, false); + await _ctx.AuctionBids.DeleteAsync(pickupPoint, false); await _staticCacheManager.RemoveByPrefixAsync(AUCTION_PATTERN_KEY); } #region auctions public virtual async Task InsertAuctionAsync(Auction auction) { - await _auctionRepository.InsertAsync(auction, false); + await _ctx.Auctions.InsertAsync(auction, false); await _staticCacheManager.RemoveByPrefixAsync(AUCTION_PATTERN_KEY); } + + public async Task> GetAllAuctionsAsync() + { + return (await _ctx.Auctions.GetAllAsync(auctions => auctions.OrderByDescending(x => x.StartDateUtc), _ => default)).ToList(); + } + #endregion #endregion diff --git a/Nop.Plugin.Misc.AuctionPlugin/Services/IAuctionService.cs b/Nop.Plugin.Misc.AuctionPlugin/Services/IAuctionService.cs index eecc414..623c967 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Services/IAuctionService.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Services/IAuctionService.cs @@ -30,4 +30,6 @@ public interface IAuctionService Task DeleteBidAsync(AuctionBid pickupPoint); Task InsertAuctionAsync(Auction auction); + + Task> GetAllAuctionsAsync(); } \ No newline at end of file