public override object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Collection <FeatureLayer> areaLayers = value as Collection <FeatureLayer>; if (areaLayers == null) { throw new ArgumentException("The parameter \"value\" is not valid."); } else { entities = areaLayers.Select(layer => new SelectColumnsEntity(layer.Name, GetColumns(layer))).ToList(); allLayersEntity = new SelectColumnsEntity("All Layers"); var allColumns = new Collection <FeatureSourceColumnDefinition>(); entities.ForEach(ent => { foreach (var column in ent.Columns) { allColumns.Add(column); } ent.Columns.CollectionChanged += Columns_CollectionChanged; }); foreach (var item in FeatureSourceColumnDefinition.GetFixedColumnDefinitions(allColumns)) { allLayersEntity.Columns.Add(item); } allLayersEntity.Columns.CollectionChanged += AllColumns_CollectionChanged; entities.Insert(0, allLayersEntity); return(entities); } }
private void LeftToRight_Click(object sender, RoutedEventArgs e) { if (selectedAvaliableColumns.Count > 0) { foreach (FeatureSourceColumnDefinition column in selectedAvaliableColumns.ToArray()) { if (!entity.IncludedColumns.Any(c => c.OriginalName.Equals(column.OriginalName))) { entity.IncludedColumns.Add(column); entity.LayerColumnPair[entity.SelectedLayerForColumns].Remove(column); if (column.IsDuplicate) { foreach (var keyValue in entity.LayerColumnPair.Where(l => l.Key.Name != "All Layers")) { FeatureSourceColumnDefinition match = keyValue.Value.FirstOrDefault(c => c.OriginalName.Equals(column.OriginalName)); if (match != null) { keyValue.Value.Remove(match); } } } } } } }
private void MoveDown_Click(object sender, RoutedEventArgs e) { FeatureSourceColumnDefinition selectedColumn = (FeatureSourceColumnDefinition)RightList.SelectedItem; if (selectedColumn != null && selectedColumn != columnsToInclude.LastOrDefault()) { int index = columnsToInclude.IndexOf(selectedColumn) + 1; columnsToInclude.Remove(selectedColumn); columnsToInclude.Insert(index, selectedColumn); RightList.SelectedIndex = index; } }
private static ObservableCollection <FeatureSourceColumnDefinition> GetColumns(FeatureLayer layer) { ObservableCollection <FeatureSourceColumnDefinition> results = new ObservableCollection <FeatureSourceColumnDefinition>(); layer.SafeProcess(() => { foreach (var item in layer.FeatureSource.GetColumns()) { FeatureSourceColumnDefinition featureSourceColumnDefinition = new FeatureSourceColumnDefinition(item, layer); string alias = layer.FeatureSource.GetColumnAlias(featureSourceColumnDefinition.ColumnName); featureSourceColumnDefinition.AliasName = alias; results.Add(featureSourceColumnDefinition); } }); return(results); }
private static void HandleCommonColumns(MergeWizardShareObject parameter, IEnumerable <FeatureSourceColumnDefinition> allColumns) { duplicateColumnsDictionary = new Dictionary <string, List <FeatureSourceColumnDefinition> >(); foreach (var group in allColumns.GroupBy(c => c.OriginalName)) { var groupColumns = group.ToList(); if (groupColumns.Count > 1) { List <FeatureSourceColumnDefinition> commonColumns = new List <FeatureSourceColumnDefinition>(); duplicateColumnsDictionary.Add(group.Key, commonColumns); foreach (var item in group) { item.IsDuplicate = true; commonColumns.Add(item); } } } foreach (var pair in duplicateColumnsDictionary) { foreach (var item in pair.Value) { if (parameter.LayerColumnPair.ContainsKey(item.FeatureLayer)) { parameter.LayerColumnPair[item.FeatureLayer].Remove(item); } } FeatureSourceColumnDefinition firstColumn = pair.Value.First(); if (parameter.IncludedColumns.Count(c => c.OriginalName.Equals(firstColumn.OriginalName)) == 0) { parameter.IncludedColumns.Add(firstColumn); } } }