public override async Task <UnblockPlayerResponse> UnblockPlayer(UnblockPlayerRequest request, ServerCallContext context) { RedisUserModel user = context.UserState["user"] as RedisUserModel; if (user == null) { return new UnblockPlayerResponse() { Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED) } } ; // Check if player is valid. RedisUserModel friend = await RedisUserModel.GetUserFromGuid(request.UserIdToBlock); if (friend == null) { return new UnblockPlayerResponse() { Status = ResponseFactory.createResponse(ResponseType.PLAYER_DOES_NOT_EXIST) } } ; // Check if player is blocked. if (!await user.IsBlocked(friend)) { return new UnblockPlayerResponse() { Status = ResponseFactory.createResponse(ResponseType.INVALID_REQUEST) } } ; await user.UnblockUser(friend); return(new UnblockPlayerResponse() { Status = ResponseFactory.createResponse(ResponseType.SUCCESS) }); }