コード例 #1
0
        public async Task <BanPlayerResponseModel> BanPlayer(BanPlayerRequestModel model)
        {
            var response = new BanPlayerResponseModel()
            {
                IsActiveBan = false, PlayerNotFound = false
            };

            var banEntity = await _context.PlayerBans.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId && t.IsActive);

            if (banEntity != null && banEntity.IsActive)
            {
                return new BanPlayerResponseModel()
                       {
                           IsActiveBan = true, PlayerNotFound = false, IsSuccess = false
                       }
            }
            ;

            var userEntity = _userService.GetPlayerById(model.PlayerId);

            if (userEntity == null)
            {
                return new BanPlayerResponseModel()
                       {
                           IsActiveBan = false, PlayerNotFound = true, IsSuccess = false
                       }
            }
            ;

            PlayerBans playerBans = new PlayerBans()
            {
                PlayerId     = model.PlayerId,
                BanReason    = (byte)model.BanReason,
                BanMessage   = model.BanMessage,
                BeginBanDate = DateTime.Now,
                EndBanDate   = model.EndBanDate,
                IsActive     = true
            };

            var result = await _context.PlayerBans.AddAsync(playerBans);

            if (result.State == EntityState.Added)
            {
                await _context.SaveChangesAsync();

                return(new BanPlayerResponseModel()
                {
                    IsActiveBan = false, PlayerNotFound = false, IsSuccess = true
                });
            }

            return(new BanPlayerResponseModel()
            {
                IsActiveBan = false, PlayerNotFound = false, IsSuccess = false
            });
        }
コード例 #2
0
        private async Task <bool> CheckBanDate(PlayerBans result)
        {
            if (result.EndBanDate == DateTime.Now.Date)
            {
                result.IsActive = false;
                var dbResult = _context.PlayerBans.Update(result);
                if (dbResult.State == EntityState.Modified)
                {
                    await _context.SaveChangesAsync();

                    return(true);
                }
            }

            return(false);
        }