2018-02-21 20:29:23 -05:00
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
2018-10-07 22:34:30 -04:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2018-04-08 02:44:42 -04:00
|
|
|
|
using SharedLibraryCore;
|
2018-10-07 22:34:30 -04:00
|
|
|
|
using SharedLibraryCore.Database;
|
2018-04-08 02:44:42 -04:00
|
|
|
|
using SharedLibraryCore.Database.Models;
|
|
|
|
|
using SharedLibraryCore.Dtos;
|
|
|
|
|
using SharedLibraryCore.Services;
|
2018-02-21 20:29:23 -05:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using WebfrontCore.ViewComponents;
|
|
|
|
|
|
|
|
|
|
namespace WebfrontCore.Controllers
|
|
|
|
|
{
|
2018-03-06 02:22:19 -05:00
|
|
|
|
public class PenaltyController : BaseController
|
2018-02-21 20:29:23 -05:00
|
|
|
|
{
|
2018-05-04 00:22:10 -04:00
|
|
|
|
public IActionResult List(int showOnly = (int)SharedLibraryCore.Objects.Penalty.PenaltyType.Any)
|
2018-02-21 20:29:23 -05:00
|
|
|
|
{
|
2018-03-13 17:30:22 -04:00
|
|
|
|
ViewBag.Description = "List of all the recent penalties (bans, kicks, warnings) on IW4MAdmin";
|
2018-05-05 18:52:04 -04:00
|
|
|
|
ViewBag.Title = Localization["WEBFRONT_PENALTY_TITLE"];
|
2018-03-13 17:30:22 -04:00
|
|
|
|
ViewBag.Keywords = "IW4MAdmin, penalties, ban, kick, warns";
|
|
|
|
|
|
2018-05-04 00:22:10 -04:00
|
|
|
|
return View((SharedLibraryCore.Objects.Penalty.PenaltyType)showOnly);
|
2018-02-21 20:29:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
2018-05-04 00:22:10 -04:00
|
|
|
|
public async Task<IActionResult> ListAsync(int offset = 0, int showOnly = (int)SharedLibraryCore.Objects.Penalty.PenaltyType.Any)
|
2018-02-21 20:29:23 -05:00
|
|
|
|
{
|
2018-05-04 00:22:10 -04:00
|
|
|
|
return await Task.FromResult(View("_List", new ViewModels.PenaltyFilterInfo()
|
|
|
|
|
{
|
|
|
|
|
Offset = offset,
|
|
|
|
|
ShowOnly = (SharedLibraryCore.Objects.Penalty.PenaltyType)showOnly
|
|
|
|
|
}));
|
2018-02-21 20:29:23 -05:00
|
|
|
|
}
|
2018-03-13 17:30:22 -04:00
|
|
|
|
|
|
|
|
|
public async Task<IActionResult> PublicAsync()
|
|
|
|
|
{
|
2018-10-07 22:34:30 -04:00
|
|
|
|
IList<EFPenalty> penalties;
|
|
|
|
|
|
|
|
|
|
using (var ctx = new DatabaseContext(disableTracking: true))
|
|
|
|
|
{
|
|
|
|
|
penalties = await ctx.Penalties
|
|
|
|
|
.Where(p => p.Type == SharedLibraryCore.Objects.Penalty.PenaltyType.Ban && p.Active)
|
|
|
|
|
.ToListAsync();
|
|
|
|
|
}
|
2018-03-13 17:30:22 -04:00
|
|
|
|
|
|
|
|
|
var penaltiesDto = penalties.Select(p => new PenaltyInfo()
|
|
|
|
|
{
|
2018-06-05 17:31:36 -04:00
|
|
|
|
Id = p.PenaltyId,
|
2018-03-13 17:30:22 -04:00
|
|
|
|
OffenderId = p.OffenderId,
|
|
|
|
|
Offense = p.Offense,
|
|
|
|
|
PunisherId = p.PunisherId,
|
|
|
|
|
Type = p.Type.ToString(),
|
|
|
|
|
TimePunished = p.When.ToString(),
|
2018-10-25 09:14:39 -04:00
|
|
|
|
TimeRemaining = "",
|
2018-05-30 21:50:20 -04:00
|
|
|
|
AutomatedOffense = p.AutomatedOffense
|
2018-03-13 17:30:22 -04:00
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
return Json(penaltiesDto);
|
|
|
|
|
}
|
2018-02-21 20:29:23 -05:00
|
|
|
|
}
|
|
|
|
|
}
|