public ICaptureResult DoAuthorise(IAuthoriseRequest request)
    {
        request.TransactionType = TransactionType.AUTHORISE;
        RequestQueryString      = BuildQueryString(request, ProtocolMessage.AUTHORISE_REQUEST, SagePaySettings.ProtocolVersion);
        ResponseQueryString     = ProcessWebRequestToSagePay(SagePaySettings.AuthoriseUrl, RequestQueryString);
        ICaptureResult result = ConvertToCaptureResult(ResponseQueryString);

        return(result);
    }
    public ICaptureResult DoRepeat(IRepeatRequest request, bool deferred)
    {
        if (deferred)
        {
            request.TransactionType = TransactionType.REPEATDEFERRED;
        }
        else
        {
            request.TransactionType = TransactionType.REPEAT;
        }

        RequestQueryString  = BuildQueryString(request, ProtocolMessage.REPEAT_REQUEST, SagePaySettings.ProtocolVersion);
        ResponseQueryString = ProcessWebRequestToSagePay(SagePaySettings.RepeatUrl, RequestQueryString);
        ICaptureResult result = ConvertToCaptureResult(ResponseQueryString);

        return(result);
    }