private TopicExpression GetTopicExpression(FilterTopic filterTopic) { if (filterTopic == null) { return(new AnyTopic()); } return(new OrExpression(new[] { GetTopicExpression(filterTopic.First), GetTopicExpression(filterTopic.Second) })); }
private TopicExpression GetTopicExpression(FilterTopic filterTopic) { if (filterTopic == null) { return(AnyTopic.Instance); } else if (filterTopic.Topic != null) { return(new SpecificTopic(filterTopic.Topic)); } else if (filterTopic.Topics.Any()) { return(new OrExpression(filterTopic.Topics.Select(t => new SpecificTopic(t)).ToArray <TopicExpression>())); } else { return(AnyTopic.Instance); } }