Mango.Nop.Plugins/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AuctionPluginAdminControlle...

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);
}
}