public async Task <IActionResult> BanAccount([FromBody] BanAccountModel model) { var user = await TokenHelper.GetUser(User, _userManager); if (user == null) { return(RequestHandler.Unauthorized()); } var isAdmin = await user.IsUserAdmin(_userManager); if (!isAdmin) { return(RequestHandler.Unauthorized()); } var account = await _authContext.Account.FirstOrDefaultAsync(x => x.Id == model.AccountId); if (account == null) { return(RequestHandler.BadRequest("Account does not exist")); } var banData = await _authContext.AccountBanned.AnyAsync(x => x.AccountId == model.AccountId && x.Active == 1); if (banData) { return(RequestHandler.BadRequest($"Account {account.Username} is already banned")); } var now = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds(); var ban = new AccountBanned { AccountId = model.AccountId, Active = 1, BanReason = model.Reason, UnbanDate = model.UnBanDate, BanDate = now, BannedBy = user.UserName }; await _authContext.AccountBanned.AddAsync(ban); await _authContext.SaveChangesAsync(); return(Ok(account)); }
public HttpResponseMessage Post([FromBody] BanAccountModel ba) { try { using (WebbanhangDBEntities entities = new WebbanhangDBEntities()) { entities.Configuration.ProxyCreationEnabled = false; BanAccount banacc = new BanAccount(); banacc.UserID = ba.UserID; banacc.Reason = ba.Reason; banacc.LiftDate = Convert.ToDateTime(ba.LiftDate); entities.BanAccounts.Add(banacc); entities.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, "POST OK")); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }