private static bool ValidateResponse(GetRegistrationTextResponse response, IEnumerable <string> ids)
    {
        if (response == null || response.RegistrationText == null)
        {
            return(false);
        }
        List <RegistrationText> legalTexts = response.RegistrationText;

        return(!ids.Any(delegate(string id)
        {
            RegistrationText registrationText = legalTexts.FirstOrDefault((RegistrationText legalText) => legalText.TextCode == id);
            return registrationText == null || registrationText.Text == null;
        }));
    }
    private void GetRegistrationText(SiteConfigurationData siteConfig, ConfigurationAgeBand configurationAgeBand, string configurationAgeBandKey, string languageCode, bool registration, Action <IGetAgeBandResult> callback)
    {
        List <string> documentIds = GetAllTextIds(siteConfig, configurationAgeBandKey, registration);

        if (documentIds.Count == 0)
        {
            HandleRequestSuccess(siteConfig, configurationAgeBand, configurationAgeBandKey, registration, new List <RegistrationText>(), callback);
        }
        else
        {
            try
            {
                GetRegistrationTextRequest getRegistrationTextRequest = new GetRegistrationTextRequest();
                getRegistrationTextRequest.LanguageCode = languageCode;
                getRegistrationTextRequest.TextCodes    = documentIds;
                getRegistrationTextRequest.CountryCode  = configurationAgeBand.country;
                getRegistrationTextRequest.AgeBand      = configurationAgeBandKey;
                GetRegistrationTextRequest request = getRegistrationTextRequest;
                IWebCall <GetRegistrationTextRequest, GetRegistrationTextResponse> webCall = webCallFactory.RegistrationTextPost(request);
                webCall.OnResponse += delegate(object sender, WebCallEventArgs <GetRegistrationTextResponse> e)
                {
                    GetRegistrationTextResponse response = e.Response;
                    if (ValidateResponse(response, documentIds))
                    {
                        HandleRequestSuccess(siteConfig, configurationAgeBand, configurationAgeBandKey, registration, response.RegistrationText, callback);
                    }
                    else
                    {
                        callback(new GetAgeBandResult(success: false, null));
                    }
                };
                webCall.OnError += delegate
                {
                    callback(new GetAgeBandResult(success: false, null));
                };
                webCall.Execute();
            }
            catch (Exception arg)
            {
                logger.Critical("Unhandled exception: " + arg);
                callback(new GetAgeBandResult(success: false, null));
            }
        }
    }