IW4M-Admin/WebfrontCore/Controllers/AdminController.cs
2022-07-05 12:02:43 -05:00

71 lines
2.8 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SharedLibraryCore;
using SharedLibraryCore.Dtos;
using SharedLibraryCore.Interfaces;
using System.Threading.Tasks;
using WebfrontCore.QueryHelpers.Models;
namespace WebfrontCore.Controllers
{
public class AdminController : BaseController
{
private readonly IAuditInformationRepository _auditInformationRepository;
private readonly ITranslationLookup _translationLookup;
private readonly IResourceQueryHelper<BanInfoRequest, BanInfo> _banInfoQueryHelper;
private static readonly int DEFAULT_COUNT = 25;
public AdminController(IManager manager, IAuditInformationRepository auditInformationRepository,
ITranslationLookup translationLookup,
IResourceQueryHelper<BanInfoRequest, BanInfo> banInfoQueryHelper) : base(manager)
{
_auditInformationRepository = auditInformationRepository;
_translationLookup = translationLookup;
_banInfoQueryHelper = banInfoQueryHelper;
}
[Authorize]
public async Task<IActionResult> AuditLog()
{
ViewBag.EnableColorCodes = Manager.GetApplicationSettings().Configuration().EnableColorCodes;
ViewBag.IsFluid = true;
ViewBag.Title = _translationLookup["WEBFRONT_NAV_AUDIT_LOG"];
ViewBag.InitialOffset = DEFAULT_COUNT;
var auditItems = await _auditInformationRepository.ListAuditInformation(new PaginationRequest
{
Count = DEFAULT_COUNT
});
return View(auditItems);
}
public async Task<IActionResult> ListAuditLog([FromQuery] PaginationRequest paginationInfo)
{
ViewBag.EnableColorCodes = Manager.GetApplicationSettings().Configuration().EnableColorCodes;
var auditItems = await _auditInformationRepository.ListAuditInformation(paginationInfo);
return PartialView("_ListAuditLog", auditItems);
}
public async Task<IActionResult> BanManagement([FromQuery] BanInfoRequest request)
{
var results = await _banInfoQueryHelper.QueryResource(request);
ViewBag.ClientName = request.ClientName;
ViewBag.ClientId = request.ClientId;
ViewBag.ClientIP = request.ClientIP;
ViewBag.ClientGuid = request.ClientGuid;
ViewBag.Title = Localization["WEBFRONT_NAV_TITLE_BAN_MANAGEMENT"];
return View(results.Results);
}
public async Task<IActionResult> BanManagementList([FromQuery] BanInfoRequest request)
{
var results = await _banInfoQueryHelper.QueryResource(request);
return PartialView("_BanEntries", results.Results);
}
}
}