public override async Task Execute(SetRefreshTokenCommand context)
        {
            var database = RedisContext.GetDatabase <UserAuthorizationRedisItem>();

            await database.SetObjectAsync <UserAuthorizationRedisItem, UserAuthorizationRedisKey, UserAuthorizationRedisValue>(
                new UserAuthorizationRedisItem
            {
                Value = new UserAuthorizationRedisValue
                {
                    RefreshToken = context.RefreshToken
                },
                Key = new UserAuthorizationRedisKey
                {
                    UserId = context.UserId
                }
            });
        }
        public override async Task <UserRefreshTokenResponse> Execute(UserRefreshTokenQuery query)
        {
            var refreshTokenItem = await RedisContext.GetDatabase <UserAuthorizationRedisItem>()
                                   .GetObjectAsync <UserAuthorizationRedisItem, UserAuthorizationRedisKey, UserAuthorizationRedisValue>(new UserAuthorizationRedisKey
            {
                UserId = query.UserId
            });

            if (refreshTokenItem == null)
            {
                throw new UserNotAuthorizedException(query.UserId);
            }

            return(new UserRefreshTokenResponse
            {
                RefreshToken = refreshTokenItem.Value.RefreshToken
            });
        }