public ActionResult BanUser(BanUserRequest req)
        {
            int  userId = req.userId;
            bool ban    = req.ban;

            throw new NotImplementedException();
        }
Example #2
0
        public void BanUser(string userId, [FromBody] BanUserRequest request)
        {
            var user           = this.GetUser(userId);
            var authentication = this.Authentication;

            user.Dispatcher.Invoke(() =>
            {
                user.Ban(authentication, request.Comment);
            });
        }
Example #3
0
        public HttpResponseMessage BanUser(BanUserRequest request)
        {
            var user = _userRepository.GetUserByCredentials(request.Username);

            if (user == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }
            user.BannedDate = DateTime.Now.AddMonths(1);
            _userRepository.SaveUser(user);

            return(new HttpResponseMessage(HttpStatusCode.OK));
        }
 public ActionResult BanUser([FromBody] BanUserRequest request)
 {
     try
     {
         _userService.BanUser(request.Id);
         return(NoContent());
     }
     catch (Exception error)
     {
         _logger.LogError(error.ToString());
         return(BadRequest());
     }
 }
Example #5
0
        public async Task <ActionResult <object> > Ban([FromBody] BanUserRequest request)
        {
            if (string.IsNullOrWhiteSpace(request.Sender))
            {
                throw new ArgumentNullException("Sender");
            }

            if (string.IsNullOrWhiteSpace(request.BanUser))
            {
                throw new ArgumentNullException("BanUser");
            }

            var senderPlatformId = BitcornUtils.GetPlatformId(request.Sender);
            var senderUser       = await BitcornUtils.GetUserForPlatform(senderPlatformId, _dbContext).FirstOrDefaultAsync();

            if (senderUser != null && senderUser.Level == "5000")
            {
                var banPlatformId = BitcornUtils.GetPlatformId(request.BanUser);
                var primaryKey    = -1;

                var banUser = await BitcornUtils.GetUserForPlatform(banPlatformId, _dbContext).FirstOrDefaultAsync();

                if (banUser != null)
                {
                    primaryKey       = banUser.UserId;
                    banUser.IsBanned = true;
                    _dbContext.Update(banUser);

                    await _dbContext.SaveAsync();
                }
                var users = await UserReflection.GetColumns(_dbContext, new string[] { "*" }, new[] { primaryKey });

                if (users.Count > 0)
                {
                    return(users.First());
                }
                return(null);
            }
            else
            {
                return(StatusCode((int)HttpStatusCode.Forbidden));
            }
        }
Example #6
0
 public HttpResponseMessage PostBanUser([FromBody] BanUserRequest request)
 {
     return(_userBanModule.BanUser(request));
 }
Example #7
0
        /// <summary>
        /// Ban or Timeout an user from chat. If a duration is specified it is treated as a timeout, if you omit a duration is a permanent ban.
        /// </summary>
        /// <param name="broadcasterId">Id of the broadcaster channel from which you want to ban/timeout somebody</param>
        /// <param name="moderatorId">Id of the moderator that wants to ban/timeout somebody (if you use the broadcaster account this has to be the broadcasterId)</param>
        /// <param name="banUserRequest">request object containing the information about the ban like the userId of the user to ban, the reason and optional duration</param>
        /// <param name="accessToken">optional access token to override the one used while creating the TwitchAPI object</param>
        /// <returns cref="BanUserResponse"></returns>
        /// <exception cref="BadParameterException"></exception>
        public Task <BanUserResponse> BanUserAsync(string broadcasterId, string moderatorId, BanUserRequest banUserRequest, string accessToken = null)
        {
            if (string.IsNullOrEmpty(broadcasterId))
            {
                throw new BadParameterException("broadcasterId must be set");
            }
            if (string.IsNullOrEmpty(moderatorId))
            {
                throw new BadParameterException("moderatorId must be set");
            }

            if (banUserRequest == null)
            {
                throw new BadParameterException("banUserRequest cannot be null");
            }

            if (string.IsNullOrWhiteSpace(banUserRequest.UserId))
            {
                throw new BadParameterException("banUserRequest.UserId must be set");
            }

            if (banUserRequest.Reason == null)
            {
                throw new BadParameterException("banUserRequest.Reason cannot be null and must be set to at least an empty string");
            }

            if (banUserRequest.Duration.HasValue)
            {
                if (banUserRequest.Duration.Value <= 0 || banUserRequest.Duration.Value > 1209600)
                {
                    throw new BadParameterException("banUserRequest.Duration has to be between including 1 and including 1209600");
                }
            }

            var getParams = new List <KeyValuePair <string, string> >()
            {
                new KeyValuePair <string, string>("broadcaster_id", broadcasterId),
                new KeyValuePair <string, string>("moderator_id", moderatorId)
            };

            var body = new
            {
                data = banUserRequest
            };

            return(TwitchPostGenericAsync <BanUserResponse>("/moderation/bans", ApiVersion.Helix, JsonConvert.SerializeObject(body), getParams, accessToken));
        }