public bool MatchesVisitor(string definition) { Mandate.ParameterNotNullOrEmpty(definition, "definition"); ReferralSetting referralSetting; try { referralSetting = JsonConvert.DeserializeObject <ReferralSetting>(definition); } catch (JsonReaderException) { throw new ArgumentException(string.Format("Provided definition is not valid JSON: {0}", definition)); } var referrer = _referrerProvider.GetReferrer(); var invariantCulture = CultureInfo.InvariantCulture; switch (referralSetting.Match) { case ReferralSettingMatch.MatchesValue: return(referrer.Equals(referralSetting.Value, StringComparison.InvariantCultureIgnoreCase)); case ReferralSettingMatch.DoesNotMatchValue: return(!referrer.Equals(referralSetting.Value, StringComparison.InvariantCultureIgnoreCase)); case ReferralSettingMatch.ContainsValue: return(invariantCulture.CompareInfo.IndexOf(referrer, referralSetting.Value, CompareOptions.IgnoreCase) >= 0); case ReferralSettingMatch.DoesNotContainValue: return(invariantCulture.CompareInfo.IndexOf(referrer, referralSetting.Value, CompareOptions.IgnoreCase) < 0); default: return(false); } }
public bool MatchesVisitor(string definition) { if (string.IsNullOrEmpty(definition)) { throw new ArgumentNullException(nameof(definition)); } ReferralSetting referralSetting; try { referralSetting = JsonConvert.DeserializeObject <ReferralSetting>(definition); } catch (JsonReaderException) { throw new ArgumentException($"Provided definition is not valid JSON: {definition}"); } var referrer = _referrerProvider.GetReferrer(); switch (referralSetting.Match) { case ReferralSettingMatch.MatchesValue: return(MatchesValue(referrer, referralSetting.Value)); case ReferralSettingMatch.DoesNotMatchValue: return(!MatchesValue(referrer, referralSetting.Value)); case ReferralSettingMatch.ContainsValue: return(ContainsValue(referrer, referralSetting.Value)); case ReferralSettingMatch.DoesNotContainValue: return(!ContainsValue(referrer, referralSetting.Value)); default: return(false); } }