Try your search with a different keyword or use * as a wildcard.
using Microsoft.AspNetCore.Mvc;
using Nop.Services.Localization;
using Nop.Services.Logging;
using Nop.Services.Messages;
using Nop.Services.Security;
using Nop.Web.Areas.Admin.Factories;
using Nop.Web.Areas.Admin.Models.Logging;
using Nop.Web.Framework.Controllers;
using ILogger = Nop.Services.Logging.ILogger;
namespace Nop.Web.Areas.Admin.Controllers;
public partial class LogController : BaseAdminController
{
#region Fields
protected readonly ICustomerActivityService _customerActivityService;
protected readonly ILocalizationService _localizationService;
protected readonly ILogger _logger;
protected readonly ILogModelFactory _logModelFactory;
protected readonly INotificationService _notificationService;
protected readonly IPermissionService _permissionService;
#endregion
#region Ctor
public LogController(ICustomerActivityService customerActivityService,
ILocalizationService localizationService,
ILogger logger,
ILogModelFactory logModelFactory,
INotificationService notificationService,
IPermissionService permissionService)
{
_customerActivityService = customerActivityService;
_localizationService = localizationService;
_logger = logger;
_logModelFactory = logModelFactory;
_notificationService = notificationService;
_permissionService = permissionService;
}
#endregion
#region Methods
public virtual IActionResult Index()
{
return RedirectToAction("List");
}
public virtual async Task List()
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSystemLog))
return AccessDeniedView();
//prepare model
var model = await _logModelFactory.PrepareLogSearchModelAsync(new LogSearchModel());
return View(model);
}
[HttpPost]
public virtual async Task LogList(LogSearchModel searchModel)
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSystemLog))
return await AccessDeniedDataTablesJson();
//prepare model
var model = await _logModelFactory.PrepareLogListModelAsync(searchModel);
return Json(model);
}
[HttpPost, ActionName("List")]
[FormValueRequired("clearall")]
public virtual async Task ClearAll()
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSystemLog))
return AccessDeniedView();
await _logger.ClearLogAsync();
//activity log
await _customerActivityService.InsertActivityAsync("DeleteSystemLog", await _localizationService.GetResourceAsync("ActivityLog.DeleteSystemLog"));
_notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.System.Log.Cleared"));
return RedirectToAction("List");
}
public virtual async Task View(int id)
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSystemLog))
return AccessDeniedView();
//try to get a log with the specified id
var log = await _logger.GetLogByIdAsync(id);
if (log == null)
return RedirectToAction("List");
//prepare model
var model = await _logModelFactory.PrepareLogModelAsync(null, log);
return View(model);
}
[HttpPost]
public virtual async Task Delete(int id)
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSystemLog))
return AccessDeniedView();
//try to get a log with the specified id
var log = await _logger.GetLogByIdAsync(id);
if (log == null)
return RedirectToAction("List");
await _logger.DeleteLogAsync(log);
//activity log
await _customerActivityService.InsertActivityAsync("DeleteSystemLog", await _localizationService.GetResourceAsync("ActivityLog.DeleteSystemLog"), log);
_notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.System.Log.Deleted"));
return RedirectToAction("List");
}
[HttpPost]
public virtual async Task DeleteSelected(ICollection selectedIds)
{
if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSystemLog))
return await AccessDeniedDataTablesJson();
if (selectedIds == null || !selectedIds.Any())
return NoContent();
await _logger.DeleteLogsAsync((await _logger.GetLogByIdsAsync([.. selectedIds])).ToList());
//activity log
await _customerActivityService.InsertActivityAsync("DeleteSystemLog", await _localizationService.GetResourceAsync("ActivityLog.DeleteSystemLog"));
return Json(new { Result = true });
}
#endregion
}