Try your search with a different keyword or use * as a wildcard.
using Microsoft.AspNetCore.Routing;
using Nop.Core;
using Nop.Services.Common;
using Nop.Services.Plugins;
using Nop.Services.Security;
using Nop.Web.Framework;
using Nop.Web.Framework.Menu;
namespace Nop.Plugin.Misc.WebApi.Frontend;
///
/// Represents the Web API frontend plugin
///
public class WebApiFrontendPlugin : BasePlugin, IAdminMenuPlugin, IMiscPlugin
{
#region Fields
protected readonly IPermissionService _permissionService;
protected readonly IWebHelper _webHelper;
#endregion
#region Ctor
public WebApiFrontendPlugin(IPermissionService permissionService,
IWebHelper webHelper)
{
_permissionService = permissionService;
_webHelper = webHelper;
}
#endregion
#region Methods
///
/// Gets a configuration page URL
///
public override string GetConfigurationPageUrl()
{
return $"{_webHelper.GetStoreLocation()}Admin/WebApiFrontend/Configure";
}
///
/// Install the plugin
///
/// A task that represents the asynchronous operation
public override async Task InstallAsync()
{
await base.InstallAsync();
}
public async Task ManageSiteMapAsync(SiteMapNode rootNode)
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManagePlugins))
return;
var config = rootNode.ChildNodes.FirstOrDefault(node => node.SystemName.Equals("Configuration"));
if (config == null)
return;
var plugins = config.ChildNodes.FirstOrDefault(node => node.SystemName.Equals("Local plugins"));
if (plugins == null)
return;
var index = config.ChildNodes.IndexOf(plugins);
if (index < 0)
return;
config.ChildNodes.Insert(index, new SiteMapNode
{
SystemName = "nopCommerce Web API plugin",
Title = "Web API",
ControllerName = "WebApiFrontend",
ActionName = "Configure",
IconClass = "far fa-dot-circle",
Visible = true,
RouteValues = new RouteValueDictionary { { "area", AreaNames.ADMIN } }
});
}
///
/// Uninstall the plugin
///
/// A task that represents the asynchronous operation
public override async Task UninstallAsync()
{
await base.UninstallAsync();
}
#endregion
}