private DateTime GetBanExpiryDate(DateTime beginingDate, BanDuration duration) { switch (duration) { case BanDuration.Hour: { return(beginingDate.AddHours(1)); } case BanDuration.Day: { return(beginingDate.AddDays(1)); } case BanDuration.Week: { return(beginingDate.AddDays(7)); } case BanDuration.Month: { return(beginingDate.AddMonths(1)); } case BanDuration.Permanent: { return(DateTime.MaxValue); } default: { return(beginingDate); } } }
public static string GetValue(this BanDuration banDuration) { return(banDuration switch { BanDuration.Hour => "RWUAM_BAN_USER_HOUR", BanDuration.Day => "RWUAM_BAN_USER_DAY", BanDuration.Permanent => "RWUAM_BAN_USER_PERM", _ => throw new Exception($"Unknown ban duration: {banDuration}.") });
public static void AddBan(IUser client, BanDuration duration) { if (list.Find(x => x.IP.Equals(client.ExternalIP) || x.Guid.Equals(client.Guid)) == null) { list.Add(new Item { Guid = client.Guid, IP = client.ExternalIP, Time = Server.Time, Duration = duration, Name = client.Name }); Save(); } }
public void BanUser(string userName, BanDuration duration) { User user = UnitOfWork.Users.SingleOrDefault(u => u.UserName == userName); if (user == null) { user = UnitOfWork.Users.SingleOrDefaultDeleted(u => u.UserName == userName); if (user == null) { throw new EntityNotFoundException(typeof(User)); } } user.BanExpiryDate = GetBanExpiryDate(user.BanExpiryDate > DateTime.UtcNow ? user.BanExpiryDate : DateTime.UtcNow, duration); UnitOfWork.Users.Update(user); UnitOfWork.Save(); }
public IActionResult Ban(Guid commentId, BanDuration banDuration) { _commentService.Ban(commentId, banDuration); return(RedirectToAction(nameof(Index), "Game")); }
public void Ban(Guid commentId, BanDuration duration) { // We don’t have users for now, so make empty service methods and test it. }