private IEnumerable GetItems(string[] strings, KeyValuePair <string, string> keyValuePair, Type targetType, Type itemType) { IValueRetriever retriever = null; foreach (var splitValue in strings) { var itemKeyValuePair = new KeyValuePair <string, string>(keyValuePair.Key, splitValue.Trim()); retriever = retriever ?? GetValueRetriever(itemKeyValuePair, targetType, itemType); yield return(retriever?.Retrieve(itemKeyValuePair, targetType, itemType)); } }
protected override IEnumerable <SubstitutionSet> CheckActivation(IQueryable db, Name perspective, IEnumerable <SubstitutionSet> constraints) { foreach (var result in m_other.Retrieve(db, perspective, constraints)) { var sub = new Substitution(m_variable, new ComplexValue(result.Item1.Value, result.Item1.Certainty)); if (result.Item2.AddSubstitution(sub)) { yield return(result.Item2); } } }
protected override IEnumerable <SubstitutionSet> CheckActivation(IQueryable db, Name perspective, IEnumerable <SubstitutionSet> constraints) { Name realValue = db.AskPossibleProperties(m_value, perspective, null).First().Item1.Value; foreach (var pair in m_retriver.Retrieve(db, perspective, constraints)) { if (CompareValues(pair.Item1.Value, realValue, m_operation)) { yield return(pair.Item2); } } }
protected override IEnumerable <SubstitutionSet> CheckActivation(IQueryable db, Name perspective, IEnumerable <SubstitutionSet> constraints) { var r1 = Property1.Retrieve(db, perspective, constraints).GroupBy(p => p.Item1, p => p.Item2); foreach (var g in r1) { foreach (var crossPair in Property2.Retrieve(db, perspective, g)) { if (CompareValues(g.Key.Value, crossPair.Item1.Value, Operator)) { yield return(crossPair.Item2); } } } }
protected override IEnumerable <SubstitutionSet> CheckActivation(IQueryable db, Name perspective, IEnumerable <SubstitutionSet> constraints) { var subs = m_predicate.Retrieve(db, perspective, constraints); foreach (var pair in subs) { bool b; if (!pair.Item1.Value.TryConvertToValue(out b)) { continue; } if (b != m_invert) { yield return(pair.Item2); } } }
internal static object GetValue(this IValueRetriever retriever, string value, Type propertyType) { return(retriever.Retrieve(new KeyValuePair <string, string>("Value", value), typeof(object), propertyType)); }