private void FillGroupingAttributeMapping() { if (GroupColumns != null) { GroupingAttributeMapping = new List <AttributeMappingInfo>(); foreach (var gc in GroupColumns) { var newMap = new AttributeMappingInfo(); newMap.PropNameInInput = gc.InputGroupingProperty; newMap.PropNameInOutput = gc.OutputGroupingProperty; if (!InputTypeInfo.IsDynamic) { newMap.PropInInput = InputTypeInfo.PropertiesByName[gc.InputGroupingProperty]; } if (!OutputTypeInfo.IsDynamic) { newMap.PropInOutput = OutputTypeInfo.PropertiesByName[gc.OutputGroupingProperty]; } GroupingAttributeMapping.Add(newMap); } } else { GroupingAttributeMapping = AggTypeInfo.GroupColumns; } }
private void FillAttributeMappingFromProperties() { MatchAttributeMapping = new List <AttributeMappingInfo>(); foreach (var mc in MatchColumns) { var newmap = new AttributeMappingInfo(); newmap.PropNameInInput = mc.InputPropertyName; newmap.PropNameInOutput = mc.LookupSourcePropertyName; if (!TypeInfo.IsInputDynamic) { newmap.PropInInput = TypeInfo.InputPropertiesByName[mc.InputPropertyName]; } if (!TypeInfo.IsOutputDynamic) { newmap.PropInOutput = TypeInfo.OutputPropertiesByName[mc.LookupSourcePropertyName]; } MatchAttributeMapping.Add(newmap); } RetrieveAttributeMapping = new List <AttributeMappingInfo>(); foreach (var rc in RetrieveColumns) { var newmap = new AttributeMappingInfo(); newmap.PropNameInInput = rc.InputPropertyName; newmap.PropNameInOutput = rc.LookupSourcePropertyName; if (!TypeInfo.IsInputDynamic) { newmap.PropInInput = TypeInfo.InputPropertiesByName[rc.InputPropertyName]; } if (!TypeInfo.IsOutputDynamic) { newmap.PropInOutput = TypeInfo.OutputPropertiesByName[rc.LookupSourcePropertyName]; } RetrieveAttributeMapping.Add(newmap); } }
private void DefineStoreKeyAction(object key, TOutput outputRow) { var gk = key as GroupingKey; foreach (var go in gk?.GroupingObjectsByProperty) { AttributeMappingInfo map = GroupingAttributeMapping.Find(m => m.PropNameInInput == go.Key); SetValueInOutputObject(outputRow, map, go.Value); } }
private object GetValueFromOutputObject(TOutput aggOutput, AttributeMappingInfo attrmap) { if (OutputTypeInfo.IsDynamic) { IDictionary <string, object> dict = aggOutput as IDictionary <string, object>; return(dict.ContainsKey(attrmap.PropNameInOutput) ? dict[attrmap.PropNameInOutput] : null); } else { return(attrmap.PropInOutput.GetValue(aggOutput)); } }
private object GetValueFromInputObject(TInput inputrow, AttributeMappingInfo attrmap) { if (InputTypeInfo.IsDynamic) { IDictionary <string, object> dict = inputrow as IDictionary <string, object>; return(dict.ContainsKey(attrmap.PropNameInInput) ? dict[attrmap.PropNameInInput] : null); } else { return(attrmap.PropInInput.GetValue(inputrow)); } }
private object GetLookupSourceValue(TSource e, AttributeMappingInfo mc) { if (TypeInfo.IsOutputDynamic) { IDictionary <string, object> dict = e as IDictionary <string, object>; return(dict.ContainsKey(mc.PropNameInOutput) ? dict[mc.PropNameInOutput] : null); } else { return(mc.PropInOutput.GetValue(e)); } }
private object GetInputValue(TInput row, AttributeMappingInfo mc) { if (TypeInfo.IsInputDynamic) { IDictionary <string, object> dict = row as IDictionary <string, object>; return(dict.ContainsKey(mc.PropNameInInput) ? dict[mc.PropNameInInput] : null); } else { return(mc.PropInInput.GetValue(row)); } }
private void SetValueInOutputObject(TOutput aggOutput, AttributeMappingInfo attrmap, object output) { if (OutputTypeInfo.IsDynamic) { IDictionary <string, object> dict = aggOutput as IDictionary <string, object>; if (dict.ContainsKey(attrmap.PropNameInOutput)) { dict[attrmap.PropNameInOutput] = output; } else { dict.Add(attrmap.PropNameInOutput, output); } } else { attrmap.PropInOutput.SetValueOrThrow(aggOutput, output); } }
private void TrySetValueInInput(TInput row, AttributeMappingInfo rc, object retrieveValue) { if (TypeInfo.IsInputDynamic) { IDictionary <string, object> dict = row as IDictionary <string, object>; if (dict.ContainsKey(rc.PropNameInInput)) { dict[rc.PropNameInInput] = retrieveValue; } else { dict.Add(rc.PropNameInInput, retrieveValue); } } else { rc.PropInInput.TrySetValue(row, retrieveValue); } }