public DictionaryEntryDataSource(DictionaryEntryVariablePair dictionaryVariables) : base( dictionaryVariables.SourceMember.EntryMember, dictionaryVariables.Variables, GetDictionaryEntryValue(dictionaryVariables), GetValidEntryExistsTest(dictionaryVariables)) { _dictionaryVariables = dictionaryVariables; }
private static Expression GetValidEntryExistsTest(DictionaryEntryVariablePair dictionaryVariables) { if (dictionaryVariables.UseDirectValueAccess) { return(null); } var valueVariableAssignment = dictionaryVariables.GetEntryValueAssignment(); var valueNonNull = valueVariableAssignment.GetIsNotDefaultComparison(); return(valueNonNull); }
private static Expression GetDictionaryEntryValue(DictionaryEntryVariablePair dictionaryVariables) { if (dictionaryVariables.UseDirectValueAccess) { return(dictionaryVariables.GetEntryValueAccess()); } var valueConversion = dictionaryVariables.MapperData.GetValueConversionOrCreation( dictionaryVariables.Value, dictionaryVariables.MapperData.TargetMember.Type); return(valueConversion); }