Пример #1
0
        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;
            }
        }
Пример #2
0
 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);
     }
 }
Пример #3
0
        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);
            }
        }
Пример #4
0
 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));
     }
 }
Пример #5
0
 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));
     }
 }
Пример #6
0
 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));
     }
 }
Пример #7
0
 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));
     }
 }
Пример #8
0
 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);
     }
 }
Пример #9
0
 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);
     }
 }