public override bool IsResolvedBy(Question Question)
        {
            if (Question is CanControlQuestion CanControlQuestion)
            {
                if (this.JID != CanControlQuestion.JID)
                {
                    return(false);
                }

                switch (this.range)
                {
                case OperationRange.Caller:
                    return(this.RemoteJID == CanControlQuestion.RemoteJID);

                case OperationRange.Domain:
                    return(IsFriendQuestion.GetDomain(this.RemoteJID) == IsFriendQuestion.GetDomain(CanControlQuestion.RemoteJID));

                case OperationRange.All:
                    return(true);

                case OperationRange.ServiceToken:
                    return(CanReadQuestion.MatchesToken(this.parameter, CanControlQuestion.ServiceTokens));

                case OperationRange.DeviceToken:
                    return(CanReadQuestion.MatchesToken(this.parameter, CanControlQuestion.DeviceTokens));

                case OperationRange.UserToken:
                    return(CanReadQuestion.MatchesToken(this.parameter, CanControlQuestion.UserTokens));

                default:
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }