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