public bool MatchesVisitor(string definition) { if (string.IsNullOrEmpty(definition)) { throw new ArgumentNullException(nameof(definition)); } PagesViewedSetting pagesViewedSetting; try { pagesViewedSetting = JsonConvert.DeserializeObject <PagesViewedSetting>(definition); } catch (JsonReaderException) { throw new ArgumentException($"Provided definition is not valid JSON: {definition}"); } var nodeIdsViewed = _pagesViewedProvider.GetNodeIdsViewed(); switch (pagesViewedSetting.Match) { case PagesViewedSettingMatch.ViewedAny: return(nodeIdsViewed .ContainsAny(pagesViewedSetting.NodeIds)); case PagesViewedSettingMatch.ViewedAll: return(nodeIdsViewed .ContainsAll(pagesViewedSetting.NodeIds)); case PagesViewedSettingMatch.NotViewedAny: return(!nodeIdsViewed .ContainsAny(pagesViewedSetting.NodeIds)); case PagesViewedSettingMatch.NotViewedAll: return(!nodeIdsViewed .ContainsAll(pagesViewedSetting.NodeIds)); default: return(false); } }
public bool MatchesVisitor(string definition) { Mandate.ParameterNotNullOrEmpty(definition, "definition"); PagesViewedSetting pagesViewedSetting; try { pagesViewedSetting = JsonConvert.DeserializeObject <PagesViewedSetting>(definition); } catch (JsonReaderException) { throw new ArgumentException(string.Format("Provided definition is not valid JSON: {0}", definition)); } var nodeIdsViewed = _pagesViewedProvider.GetNodeIdsViewed(); switch (pagesViewedSetting.Match) { case PagesViewedSettingMatch.ViewedAny: return(pagesViewedSetting.NodeIds .ContainsAny(nodeIdsViewed)); case PagesViewedSettingMatch.ViewedAll: return(pagesViewedSetting.NodeIds .ContainsAll(nodeIdsViewed)); case PagesViewedSettingMatch.NotViewedAny: return(!pagesViewedSetting.NodeIds .ContainsAny(nodeIdsViewed)); case PagesViewedSettingMatch.NotViewedAll: return(!pagesViewedSetting.NodeIds .ContainsAll(nodeIdsViewed)); default: return(false); } }