114 lines
4.3 KiB
C#
114 lines
4.3 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Nop.Plugin.Misc.AuctionPlugin;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Models;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Services;
|
|
using Nop.Services.Catalog;
|
|
using Nop.Services.Cms;
|
|
using Nop.Services.Common;
|
|
using Nop.Services.Logging;
|
|
using Nop.Web.Areas.Admin.Components;
|
|
using Nop.Web.Areas.Admin.Models.Catalog;
|
|
using Nop.Web.Areas.Admin.Models.Orders;
|
|
using Nop.Web.Framework.Components;
|
|
using Nop.Web.Framework.Factories;
|
|
using Nop.Web.Framework.Infrastructure;
|
|
using Nop.Web.Models.Catalog;
|
|
using System.Linq.Expressions;
|
|
|
|
|
|
namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Components
|
|
{
|
|
[ViewComponent(Name = "AuctionAdmin")]
|
|
public class AuctionAdminViewComponent : AdminWidgetViewComponent
|
|
{
|
|
#region Fields
|
|
protected readonly ILogger _logger;
|
|
protected readonly IProductAttributeService _productAttributeService;
|
|
protected readonly IWidgetPluginManager _widgetPluginManager;
|
|
protected readonly AuctionSettings _auctionSettings;
|
|
protected readonly AuctionService _auctionService;
|
|
protected readonly MyProductModelFactory _productModelFactory;
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region Ctor
|
|
|
|
public AuctionAdminViewComponent(
|
|
IWidgetModelFactory widgetModelFactory,
|
|
ILogger logger,
|
|
IProductAttributeService productAttributeService,
|
|
IWidgetPluginManager widgetPluginManager,
|
|
AuctionSettings auctionSettings,
|
|
AuctionService auctionService,
|
|
MyProductModelFactory productModelFactory) : base(widgetModelFactory)
|
|
{
|
|
_logger = logger;
|
|
_productAttributeService = productAttributeService;
|
|
_widgetPluginManager = widgetPluginManager;
|
|
_auctionSettings = auctionSettings;
|
|
_auctionService = auctionService;
|
|
_productModelFactory = productModelFactory;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
/// <summary>
|
|
/// Invoke the widget view component
|
|
/// </summary>
|
|
/// <param name="widgetZone">Widget zone</param>
|
|
/// <param name="additionalData">Additional parameters</param>
|
|
/// <returns>
|
|
/// A task that represents the asynchronous operation
|
|
/// The task result contains the view component result
|
|
/// </returns>
|
|
public override async Task<IViewComponentResult> InvokeAsync(string widgetZone, object additionalData)
|
|
{
|
|
|
|
//await base.InvokeAsync(widgetZone, additionalData);
|
|
await _logger.InformationAsync($"Admin auction widget called from {widgetZone}!");
|
|
if (!await _widgetPluginManager.IsPluginActiveAsync(AuctionDefaults.SystemName))
|
|
return Content(string.Empty);
|
|
|
|
//if (!_auctionSettings.Enabled)
|
|
// return Content(string.Empty);
|
|
|
|
//if (additionalData is not ProductDetailsModel model)
|
|
// return Content(string.Empty);
|
|
|
|
var productId = 0;
|
|
if (!widgetZone.Equals(AdminWidgetZones.ProductDetailsButtons))
|
|
{
|
|
await _logger.InformationAsync($"Admin auction widget not in the right widgetzone {widgetZone}!");
|
|
return Content(string.Empty);
|
|
}
|
|
|
|
var product = (additionalData as ProductModel);
|
|
//ProductDetailsModel detailsModel = await _productModelFactory.PrepareProductDetailsModelAsync(product.Price);
|
|
|
|
productId = product.Id;
|
|
|
|
var auctions = await _auctionService.GetAllAuctionsAsync() ?? new List<Auction>();
|
|
|
|
// Assign the auctions to the ViewBag
|
|
ViewBag.Auctions = auctions;
|
|
ProductAssignToAuctionViewModel viewModel = new ProductAssignToAuctionViewModel();
|
|
viewModel.ProductId = productId;
|
|
viewModel.StartingPrice = product.OldPrice;
|
|
viewModel.BidPrice = product.OldPrice;
|
|
//viewModel.InAuctions = await _auctionService.GetAllAuctionsAsync()
|
|
viewModel.InAuctions = [];
|
|
|
|
await _logger.InformationAsync($"Admin auction widget called from {widgetZone}! II. ");
|
|
return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/AdminProductAuctionSettingsBox.cshtml", viewModel);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
}
|