120 lines
4.4 KiB
C#
120 lines
4.4 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Nop.Web.Framework.Controllers;
|
|
using Nop.Web.Framework.Mvc.Filters;
|
|
using Nop.Web.Framework;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Models;
|
|
using Nop.Services.Configuration;
|
|
using Nop.Plugin.Misc.AuctionPlugin;
|
|
using Nop.Services.Messages;
|
|
using Nop.Services.Localization;
|
|
using Nop.Services.Logging;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Services;
|
|
|
|
namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers;
|
|
|
|
[AutoValidateAntiforgeryToken]
|
|
[AuthorizeAdmin]
|
|
[Area(AreaNames.ADMIN)]
|
|
public class AuctionPluginAdminController : BasePluginController
|
|
{
|
|
//private readonly SignalRservice _signalRservice;
|
|
private readonly ILocalizationService _localizationService;
|
|
private readonly INotificationService _notificationService;
|
|
private readonly ISettingService _settingService;
|
|
private readonly AuctionSettings _auctionSettings;
|
|
private readonly IAuctionService _auctionService;
|
|
private readonly ILogger _logger;
|
|
|
|
//public AuctionPluginAdminController(SignalRservice signalRservice)
|
|
public AuctionPluginAdminController(ILocalizationService localizationService, INotificationService notificationService, ISettingService settingService, AuctionSettings auctionSettings, ILogger logger, IAuctionService auctionService)
|
|
{
|
|
_localizationService = localizationService;
|
|
_notificationService = notificationService;
|
|
_settingService = settingService;
|
|
_auctionSettings = auctionSettings;
|
|
//_signalRservice = signalRservice;
|
|
_auctionService = auctionService;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task<IActionResult> Configure(bool showtour = false)
|
|
{
|
|
return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/Configure.cshtml", new ConfigurationModel());
|
|
}
|
|
|
|
[HttpPost, ActionName("Configure")]
|
|
[FormValueRequired("save")]
|
|
public async Task<IActionResult> Configure(ConfigurationModel model)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
{
|
|
|
|
await _logger.ErrorAsync($"Auction configuration model error: invalid modelstate!");
|
|
return await Configure();
|
|
|
|
}
|
|
|
|
if (_auctionSettings.SomeText != model.Test)
|
|
{
|
|
_auctionSettings.SomeText = model.Test;
|
|
await _logger.InformationAsync($"Auction configuration saving: {_auctionSettings.SomeText}");
|
|
|
|
}
|
|
|
|
await _settingService.SaveSettingAsync(_auctionSettings);
|
|
await _logger.InformationAsync($"Auction configuration saved: {_auctionSettings.SomeText}");
|
|
//_notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.Plugins.Saved"));
|
|
_notificationService.SuccessNotification("Saved");
|
|
|
|
return await Configure();
|
|
}
|
|
|
|
//[HttpPost]
|
|
//public async Task<IActionResult> TestHubConnection(string message)
|
|
//{
|
|
// try
|
|
// {
|
|
// await _signalRservice.TestHub();
|
|
// return Json(new { success = true, message = $"Hub successfully called - {message}" });
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// return Json(new { success = false, message = $"Error: {ex.Message}" });
|
|
// }
|
|
//}
|
|
|
|
public IActionResult GetAuctionViewModel()
|
|
{
|
|
var model = new AuctionViewModel();
|
|
return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/Auction.cshtml", model);
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> GetAuctionViewModel(AuctionViewModel viewModel)
|
|
{
|
|
Auction objOfAuctionDomain = new Auction();
|
|
objOfAuctionDomain.AuctionName = viewModel.AuctionName;
|
|
objOfAuctionDomain.AuctionType = viewModel.AuctionType;
|
|
objOfAuctionDomain.StartDateUtc = viewModel.StartDateUtc;
|
|
objOfAuctionDomain.EndDateUtc = viewModel.EndDateUtc;
|
|
objOfAuctionDomain.Closed = viewModel.Closed;
|
|
objOfAuctionDomain.Created = DateTime.UtcNow;
|
|
await _auctionService.InsertAuctionAsync(objOfAuctionDomain);
|
|
|
|
//if (viewModel.IsActive == true)
|
|
//{
|
|
// await _announcementHubContext.Clients.All.SendAsync("send", viewModel.Body.ToString());
|
|
//}
|
|
return RedirectToAction("AuctionList");
|
|
|
|
}
|
|
|
|
public IActionResult TestPage()
|
|
{
|
|
var model = new TestPageViewModel();
|
|
return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/Auction.cshtml", model);
|
|
}
|
|
|
|
}
|