diff --git a/Nop.Plugin.Misc.AuctionPlugin/Content/Js/MgMessageHandler.js b/Nop.Plugin.Misc.AuctionPlugin/Content/Js/MgMessageHandler.js index 08b037c..5fab80c 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Content/Js/MgMessageHandler.js +++ b/Nop.Plugin.Misc.AuctionPlugin/Content/Js/MgMessageHandler.js @@ -31,20 +31,30 @@ //console.log(data); var myObject = JSON.parse(data); //console.log(myObject); - var productAuctionMappingId = myObject.auctionDto.productToAuctionDtos[0].id; + + var auctionDto = myObject.auctionDto; + var productToAuctionDto = auctionDto.productToAuctionDtos[0]; + + //var productAuctionMappingId = productToAuctionDto.id; //console.log(productAuctionMappingId); var publicProductBidBox = document.getElementById("publicProductBidBox"); var liveScreen = document.getElementById("auctionProductLiveScreenBox"); + var publicInfo = document.getElementById("publicInfoOverlay" + productToAuctionDto.productId); + if (publicProductBidBox) { refreshPublicBidBox(myObject); } + if (publicInfo) { + var functionName = "refreshPublicInfo" + productToAuctionDto.productId; + window[functionName](auctionDto); + } if (liveScreen) { reloadOnUpdate(); } - if (!liveScreen) { + else { toastr.success(`

${myObject.currentPrice}

${myObject.productName}

`, "New bid arrived", { "closeButton": true, "positionClass": "toast-bottom-left", @@ -66,12 +76,14 @@ }, ProductToAuctionStatusNotification: function (data) { console.log(data); + var myObject = JSON.parse(data); var auctionDto = myObject.auctionDto; - var productToAuctionDto = myObject.auctionDto.productToAuctionDtos[0]; + var productToAuctionDto = auctionDto.productToAuctionDtos[0]; var publicProductBidBox = document.getElementById("publicProductBidBox"); var liveScreen = document.getElementById("auctionProductLiveScreenBox"); var publicInfo = document.getElementById("publicInfoOverlay" + productToAuctionDto.productId); + if (!liveScreen) { var messageTitle = ""; var messageText = ""; @@ -143,11 +155,7 @@ } if (publicInfo) { var functionName = "refreshPublicInfo" + productToAuctionDto.productId; - /*if (typeof window[functionName] === "function" + productToAuctionDto.productId) {*/ - window[functionName](myObject); // Dynamically call the function - //} else { - //console.error("Function " + functionName + " does not exist."); - //} + window[functionName](auctionDto); } // var publicProductBidBox = document.getElementById("publicProductBidBox"); diff --git a/Nop.Plugin.Misc.AuctionPlugin/Models/AuctionPublicInfoModel.cs b/Nop.Plugin.Misc.AuctionPlugin/Models/AuctionPublicInfoModel.cs index dc2197a..5023697 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Models/AuctionPublicInfoModel.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Models/AuctionPublicInfoModel.cs @@ -6,37 +6,36 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Models { public record AuctionPublicInfoModel : BaseNopModel { - [JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] + //[JsonIgnore] + //[System.Text.Json.Serialization.JsonIgnore] public AuctionDto AuctionDto { get; set; } [JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] public ProductToAuctionDto FirstProductToAuction { get; set; } - public int ProductId { get; set; } - - public int ProductToAuctionMappingId { get; set; } - - public DateTime StartDate { get; set; } - - public bool IsActive { get; set; } + public int ProductId => FirstProductToAuction?.ProductId ?? 0; + public int ProductToAuctionMappingId => FirstProductToAuction?.ProductId ?? 0; + public DateTime StartDate => AuctionDto?.StartDateUtc ?? DateTime.MinValue; + public bool IsActive => FirstProductToAuction?.IsActiveItem ?? false; - public AuctionPublicInfoModel() {} + public AuctionPublicInfoModel() + { + } public AuctionPublicInfoModel(AuctionDto auctionDto) : this() { AuctionDto = auctionDto; - - StartDate = AuctionDto.StartDateUtc; - + + //StartDate = AuctionDto.StartDateUtc; + FirstProductToAuction = AuctionDto.ProductToAuctionDtos.FirstOrDefault(); if (FirstProductToAuction == null) return; - ProductId = FirstProductToAuction.ProductId; - ProductToAuctionMappingId = FirstProductToAuction.Id; - IsActive = FirstProductToAuction.IsActiveItem; + //ProductId = FirstProductToAuction.ProductId; + //ProductToAuctionMappingId = FirstProductToAuction.Id; + //IsActive = FirstProductToAuction.IsActiveItem; } } } diff --git a/Nop.Plugin.Misc.AuctionPlugin/Views/PublicInfo.cshtml b/Nop.Plugin.Misc.AuctionPlugin/Views/PublicInfo.cshtml index 0f7ad30..99b1498 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Views/PublicInfo.cshtml +++ b/Nop.Plugin.Misc.AuctionPlugin/Views/PublicInfo.cshtml @@ -1,72 +1,85 @@ -@model AuctionPublicInfoModel +@using AyCode.Core.Extensions +@model AuctionPublicInfoModel