Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
            }
        }