using Microsoft.AspNetCore.Mvc;
using Nop.Core;
using Nop.Plugin.Misc.NopCliGeneric.Models;
using Nop.Services.Configuration;
using Nop.Services.Localization;
using Nop.Services.Messages;
using Nop.Web.Framework;
using Nop.Web.Framework.Controllers;
using Nop.Web.Framework.Mvc.Filters;
namespace Nop.Plugin.Misc.NopCliGeneric.Controllers
{
[AutoValidateAntiforgeryToken]
public class MiscNopCliGenericController : BasePluginController
{
#region Fields
private readonly ILocalizationService _localizationService;
private readonly INotificationService _notificationService;
private readonly ISettingService _settingService;
private readonly IStoreContext _storeContext;
#endregion
#region Ctor
public MiscNopCliGenericController(
ILocalizationService localizationService,
INotificationService notificationService,
ISettingService settingService,
IStoreContext storeContext)
{
_localizationService = localizationService;
_notificationService = notificationService;
_settingService = settingService;
_storeContext = storeContext;
}
#endregion
#region Utilities
///
/// Prepare SendinBlueModel
///
/// Model
private void PrepareModel(ConfigurationModel model)
{
//load settings for active store scope
var storeId = _storeContext.ActiveStoreScopeConfiguration;
var NopCliGenericSettings = _settingService.LoadSetting(storeId);
model.NopCliGenericToName = NopCliGenericSettings.NopCliGenericToName;
}
#endregion
#region Methods
[AuthorizeAdmin]
[Area(AreaNames.Admin)]
public IActionResult Configure()
{
var model = new ConfigurationModel();
PrepareModel(model);
return View("~/Plugins/Misc.NopCliGeneric/Views/Configure.cshtml", model);
}
[AuthorizeAdmin]
[Area(AreaNames.Admin)]
[HttpPost, ActionName("Configure")]
[FormValueRequired("save")]
public IActionResult Configure(ConfigurationModel model)
{
if (!ModelState.IsValid)
return Configure();
var storeId = _storeContext.ActiveStoreScopeConfiguration;
var NopCliGenericSettings = _settingService.LoadSetting(storeId);
NopCliGenericSettings.NopCliGenericToName = model.NopCliGenericToName;
_settingService.SaveSetting(NopCliGenericSettings);
_settingService.ClearCache();
_notificationService.SuccessNotification(_localizationService.GetResource("Admin.Plugins.Saved"));
return Configure();
}
#endregion
}
}