public override void stageExecute(SalePostContext context)
        {
            SaleRepo.SaleAuthorisationResponseBuilder respBuilder;
            SchemeAuthorisationResult schemeAuthResult;

            nextStage(context);

            respBuilder      = context.responseBuilder();
            schemeAuthResult = respBuilder.AuthorisationResult;

            string authCode = null;

            if (schemeAuthResult != null)
            {
                authCode = schemeAuthResult.SchemeAuthCode;
            }

            // As we maunally set this value it should only ever happen with Visa.
            if ((!string.ReferenceEquals(authCode, null)) && (authCode.Equals("REJECT")) && (respBuilder.AuthScheme == AuthScheme.VISA))
            {
                respBuilder.ResponseCode = ResponseCode.FORMAT_ERROR;
            }
            else
            {
                respBuilder.ResponseCode = responseMapper.mapResponseCode(schemeAuthResult, respBuilder.ResponseCode, respBuilder.AuthScheme);
            }
            respBuilder.CvvResponseCode = responseMapper.mapCvvResponseCode(schemeAuthResult, respBuilder.AuthScheme);

            respBuilder.AvsAddressResponseCode = responseMapper.mapAvsAddressResponseCode(schemeAuthResult, respBuilder.AuthScheme);

            respBuilder.AvsPostalCodeResponseCode = responseMapper.mappedAvsPostalResponseCodeCode(schemeAuthResult, respBuilder.AuthScheme);

            //Logger.info("Mapped response code is " + respBuilder.ResponseCode);
        }