Пример #1
0
        private async void AddFolderToProject(string addFolderPath)
        {
            try
            {
                // Add a folder to the Project
                var folderToAdd = ItemFactory.Instance.Create(addFolderPath);
                await QueuedTask.Run(() => Project.Current.AddItem(folderToAdd as IProjectItem));

                // find the folder project item
                FolderConnectionProjectItem folder = Project.Current.GetItems <FolderConnectionProjectItem>().FirstOrDefault(f => f.Path.Equals(addFolderPath, StringComparison.CurrentCultureIgnoreCase));
                if (folder == null)
                {
                    return;
                }

                // do the search
                IEnumerable <Item> folderFiles = null;
                await QueuedTask.Run(() => folderFiles = folder.GetItems().Where(f => f.Path.EndsWith(Filter, StringComparison.CurrentCultureIgnoreCase)));

                // search MXDs
                lock (_lockMxdItemCollection)
                {
                    _mxdItems.Clear();
                    foreach (var newItem in folderFiles)
                    {
                        _mxdItems.Add(newItem);
                    }
                }
                NotifyPropertyChanged(() => MxdItems);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error adding folder to project: " + ex.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// Sample code for ProjectItem
        /// </summary>
        public async Task ProjectItemExamples()
        {
            // not to be included in sample regions
            var projectFolderConnection = (Project.Current.GetItems <FolderConnectionProjectItem>()).First();

            #region GetMapProjectItems

            /// Get all the maps in a project
            IEnumerable <MapProjectItem> projectMaps = Project.Current.GetItems <MapProjectItem>();

            #endregion //GetMapProjectItems

            #region GetFolderConnectionProjectItems

            /// Get all the folder connections in a project
            IEnumerable <FolderConnectionProjectItem> projectFolders = Project.Current.GetItems <FolderConnectionProjectItem>();

            #endregion //GetFolderConnectiontProjectItems

            #region GetServerConnectionProjectItems

            /// Get all the server connections in a project
            IEnumerable <ServerConnectionProjectItem> projectServers = Project.Current.GetItems <ServerConnectionProjectItem>();

            #endregion //GetServerConnectionProjectItems

            #region GetLocatorConnectionProjectItems

            /// Get all the locator connections in a project
            IEnumerable <LocatorsConnectionProjectItem> projectLocators = Project.Current.GetItems <LocatorsConnectionProjectItem>();

            #endregion //GetLocatorConnectionProjectItems


            #region GetProjectItemContent

            /// Get all the items that can be accessed from a folder connection. The items immediately
            /// contained by a folder, that is, the folder's children, are returned including folders
            /// and individual items that can be used in ArcGIS Pro. This method does not return all
            /// items contained by any sub-folder that can be accessed from the folder connection.
            FolderConnectionProjectItem folderConnection = Project.Current.GetItems <FolderConnectionProjectItem>()
                                                           .FirstOrDefault((folder => folder.Name.Equals("Data")));
            await QueuedTask.Run(() =>
            {
                IEnumerable <Item> folderContents = folderConnection.GetItems();
            });

            #endregion //GetProjectItems

            #region AddFolderConnectionProjectItem

            /// Add a folder connection to a project
            Item folderToAdd = ItemFactory.Instance.Create(@"C:\Data\Oregon\Counties\Streets");
            bool wasAdded    = await QueuedTask.Run(() => Project.Current.AddItem(folderToAdd as IProjectItem));

            #endregion //AddFolderConnectionProjectItem

            #region AddGDBProjectItem

            /// Add a file geodatabase or a SQLite or enterprise database connection to a project
            Item gdbToAdd         = folderToAdd.GetItems().FirstOrDefault(folderItem => folderItem.Name.Equals("CountyData.gdb"));
            var  addedGeodatabase = await QueuedTask.Run(() => Project.Current.AddItem(gdbToAdd as IProjectItem));

            #endregion //AddGDBProjectItem



            #region RemoveFolderConnectionFromProject

            /// Remove a folder connection from a project; the folder stored on the local disk
            /// or the network is not deleted
            FolderConnectionProjectItem folderToRemove = Project.Current.GetItems <FolderConnectionProjectItem>().FirstOrDefault(folder => folder.Name.Equals("PlantSpecies"));
            if (folderToRemove != null)
            {
                Project.Current.RemoveItem(folderToRemove as IProjectItem);
            }

            #endregion //RemoveFolderConnectionFromProject

            #region RemoveMapFromProject

            /// Remove a map from a project; the map is deleted
            IProjectItem mapToRemove           = Project.Current.GetItems <MapProjectItem>().FirstOrDefault(map => map.Name.Equals("OldStreetRoutes"));
            var          removedMapProjectItem = await QueuedTask.Run(
                () => Project.Current.RemoveItem(mapToRemove));

            #endregion //RemoveMapFromProject



            #region ImportToProject

            /// Import a mxd
            Item mxdToImport = ItemFactory.Instance.Create(@"C:\Projects\RegionalSurvey\LatestResults.mxd");
            var  addedMxd    = await QueuedTask.Run(
                () => Project.Current.AddItem(mxdToImport as IProjectItem));

            /// Add map package
            Item mapPackageToAdd = ItemFactory.Instance.Create(@"c:\Data\Map.mpkx");
            var  addedMapPackage = await QueuedTask.Run(
                () => Project.Current.AddItem(mapPackageToAdd as IProjectItem));

            /// Add an exported Pro map
            Item proMapToAdd         = ItemFactory.Instance.Create(@"C:\ExportedMaps\Election\Districts.mapx");
            var  addedMapProjectItem = await QueuedTask.Run(
                () => Project.Current.AddItem(proMapToAdd as IProjectItem));

            #endregion //ImportToProject
        }