private void SetAutoParentMapping(List<FieldMappingInfo> fieldMappingList, FieldMappingInfo selectedChildFieldMappingItem) { string currentItemText = selectedChildFieldMappingItem.SourceFieldFullName; foreach (FieldMappingInfo fieldMappingItem in fieldMappingList) { if (fieldMappingItem.TargetField != null && fieldMappingItem.TargetField == selectedChildFieldMappingItem.TargetField.Parent) { if (currentItemText == "< new >") fieldMappingItem.SourceFieldFullName = "< new >"; this.SetAutoParentMapping(fieldMappingList, fieldMappingItem); } } }
private void SetAutoChildrenMapping(List<FieldMappingInfo> fieldMappingList, FieldMappingInfo selectedParentFieldMappingItem, List<FieldInfo> sourceSchemaFields, string selectedParentText) { selectedParentFieldMappingItem.SourceFieldFullName = selectedParentText; FieldInfo selectedParentSourceField = selectedParentFieldMappingItem.SourceField; string parentPath = selectedParentSourceField.GetFieldNamePath(); foreach (FieldMappingInfo fieldMappingItem in fieldMappingList) { if (fieldMappingItem.TargetField != null && fieldMappingItem.TargetField.Parent == selectedParentFieldMappingItem.TargetField) { string sourceFieldFullName = fieldMappingItem.TargetField.GetFieldFullName(false) + string.Format(" | ({0})", (parentPath + "/" + fieldMappingItem.TargetField.Field.Name).Trim('/')); if (sourceSchemaFields.All(x => x.GetFieldFullName().Trim() != sourceFieldFullName.Trim())) { sourceFieldFullName = "< ignore >"; } fieldMappingItem.SourceFieldFullName = sourceFieldFullName; this.SetAutoChildrenMapping(fieldMappingList, fieldMappingItem, sourceSchemaFields, fieldMappingItem.SourceFieldFullName); } } }