public static Collection <FeatureSourceColumn> GetColumns(this FeatureSource featureSource, GettingColumnsType returningFeatureSourceColumnsType)
        {
            //LINK: removed link logic.
            Collection <FeatureSourceColumn> columns = featureSource.GetColumns();

            return(columns);
        }
        //private void Output(IEnumerable<Feature> bufferedFeatures)
        //{
        //    try
        //    {
        //        FileExportInfo info = new FileExportInfo(bufferedFeatures, GetColumns(), outputPathFileName, displayProjectionParameters);
        //        ShpFileExporter exporter = new ShpFileExporter();
        //        exporter.ExportToFile(info);
        //    }
        //    catch (Exception ex)
        //    {
        //        UpdatingTaskProgressEventArgs e = new UpdatingTaskProgressEventArgs(TaskState.Canceled);
        //        e.Error = new ExceptionInfo(ex.Message, ex.StackTrace, ex.Source);
        //        OnUpdatingProgress(e);
        //    }
        //}

        private IEnumerable <FeatureSourceColumn> GetColumns()
        {
            featureSource.Open();
            var columns = featureSource.GetColumns();

            featureSource.Close();

            return(columns);
        }
        private void Split()
        {
            var args = new UpdatingTaskProgressEventArgs(TaskState.Updating);

            featureSource.Open();
            Collection <Feature> allFeatures = featureSource.GetAllFeatures(featureSource.GetDistinctColumnNames());
            var columns = featureSource.GetColumns();

            featureSource.Close();

            var featuresGroups = allFeatures.GroupBy(tmpFeature
                                                     => tmpFeature.ColumnValues[splitColumnName]).ToArray();

            int i     = 0;
            int count = exportConfigs.Count;

            foreach (var config in exportConfigs)
            {
                try
                {
                    string folderName = outputPath;
                    string fileName   = config.Value;
                    if (String.IsNullOrEmpty(fileName))
                    {
                        fileName = String.Format(CultureInfo.InvariantCulture, "{0}_{1}.shp", layerName, config.Key);
                    }

                    fileName = Path.ChangeExtension(fileName, ".shp");
                    string finalShapeFilePath = Path.Combine(folderName, fileName);
                    var    featureGroup       = featuresGroups.FirstOrDefault(group => group.Key == config.Key || (config.Key.Equals("<Blank>", StringComparison.Ordinal) && group.Key.Equals(string.Empty, StringComparison.Ordinal)));
                    if (featureGroup != null)
                    {
                        var info = new FileExportInfo(featureGroup, columns, finalShapeFilePath, wkt);
                        Export(info);
                    }

                    args.Current    = ++i;
                    args.UpperBound = count;
                    args.Message    = String.Format(CultureInfo.InvariantCulture, "Building... ({0}/{1})", args.Current, args.UpperBound);
                    OnUpdatingProgress(args);
                    isCanceled = args.TaskState == TaskState.Canceled;

                    if (isCanceled)
                    {
                        break;
                    }
                }
                catch (Exception ex)
                {
                    var errorArgs = new UpdatingTaskProgressEventArgs(TaskState.Error);
                    errorArgs.Error = new ExceptionInfo(ex.Message, ex.StackTrace, ex.Source);
                    GisEditor.LoggerManager.Log(LoggerLevel.Debug, ex.Message, new ExceptionInfo(ex));
                    OnUpdatingProgress(errorArgs);
                    continue;
                }
            }
        }
        private Collection <Feature> GetFeaturesToExplode(FeatureSource featureSource)
        {
            featureSource.Open();
            var allFeatures = featureSource.GetAllFeatures(featureSource.GetDistinctColumnNames());

            columns = featureSource.GetColumns();
            featureSource.Close();

            return(allFeatures);
        }
        private Collection <Feature> GetFeaturesToDissolve()
        {
            featureSource.Open();
            featureColumns = featureSource.GetColumns();
            var allFeatures = featureSource.GetAllFeatures(ReturningColumnsType.AllColumns);

            featureSource.Close();

            return(allFeatures);
        }
        public static string[] GetDistinctColumnNames(this FeatureSource featureSource)
        {
            Collection <string> columnNames = new Collection <string>();

            foreach (var item in featureSource.GetColumns())
            {
                columnNames.Add(item.ColumnName);
            }

            return(columnNames.Distinct(new ColumnNamesComparer()).ToArray());
        }
        private Collection <Feature> GetFeaturesToBuffer(string featureSourceInString)
        {
            FeatureSource featureSource = (FeatureSource)GetObjectFromString(featureSourceInString);

            featureSource.Open();
            var allFeatures = featureSource.GetAllFeatures(ReturningColumnsType.AllColumns);

            columns = featureSource.GetColumns();
            featureSource.Close();

            return(allFeatures);
        }
        protected override void RunCore(Dictionary <string, string> parameters)
        {
            ParseParameters(parameters);
            var clippingFeatures = GetClippingFeatures();

            masterLayerFeatureSource.Open();
            var columns = masterLayerFeatureSource.GetColumns();

            masterLayerFeatureSource.Close();

            var clippedFeatures = Clip(masterLayerFeatureSource, clippingFeatures, clipType);

            ExportToFile(outputPath, clippedFeatures, columns);

            var args = new UpdatingProgressLongRunningTaskPluginEventArgs(LongRunningTaskState.Updating);

            args.Message = "Finished";
            OnUpdatingProgress(args);
        }
        private void Split()
        {
            try
            {
                var args = new UpdatingProgressLongRunningTaskPluginEventArgs(LongRunningTaskState.Updating);

                featureSource.Open();
                Collection <Feature> allFeatures = featureSource.GetAllFeatures(ReturningColumnsType.AllColumns);
                var columns = featureSource.GetColumns();
                featureSource.Close();

                var featuresGroups = allFeatures.GroupBy(tmpFeature
                                                         => tmpFeature.ColumnValues[splitColumnName]);

                int i     = 0;
                int count = exportConfigs.Count;
                exportConfigs.ForEach(config =>
                {
                    string folderName = outputPath;
                    string fileName   = config.Value;
                    if (String.IsNullOrEmpty(fileName))
                    {
                        fileName = String.Format(CultureInfo.InvariantCulture, "{0}_{1}.shp", layerName, config.Key);
                    }

                    if (!fileName.EndsWith(".shp", StringComparison.OrdinalIgnoreCase))
                    {
                        fileName += ".shp";
                    }

                    string finalShapeFilePath = Path.Combine(folderName, fileName);

                    if (File.Exists(finalShapeFilePath) && overwriteOutputFiles)
                    {
                        //CloseExistingLayersAndCollectOverlaysToRefresh(this, finalShapeFilePath);
                        RemoveShapeFile(finalShapeFilePath);
                    }

                    //this.OutputShapeFileNames.Add(finalShapeFilePath);
                    var featureGroup = featuresGroups.FirstOrDefault(group => group.Key == config.Key);
                    if (featureGroup != null)
                    {
                        ShpFileExporter exporter = new ShpFileExporter();
                        exporter.ExportToFile(new FileExportInfo(featureGroup, columns, finalShapeFilePath, wkt));
                    }

                    args.Message = String.Format(CultureInfo.InvariantCulture, "Building... ({0}/{1})", ++i, count);
                    OnUpdatingProgress(args);
                });
            }
            catch (Exception ex)
            {
                //HandleExceptionFromInvalidFeature(feature.Id, ex.Message);
            }
            finally
            {
                //this.IsBusy = false;
                //this.BusyContent = String.Empty;
                //this.CurrentThread = null;
            }
        }