public static IGPEnvironment GetEnvironment(IGPEnvironmentManager environmentManager, string name)
        {
            IGPUtilities gpUtils = new GPUtilitiesClass();
            IGPEnvironment returnEnv = null;

            if (environmentManager.GetLocalEnvironments().Count > 0)
                returnEnv = gpUtils.GetEnvironment(environmentManager.GetLocalEnvironments(), name);

            if (returnEnv == null)
                returnEnv = gpUtils.GetEnvironment(environmentManager.GetEnvironments(), name);

            return returnEnv;
        }
        public static IGPEnvironment getEnvironment(IGPEnvironmentManager environmentManager, string name)
        {
            IGPUtilities3 gpUtils = new GPUtilitiesClass();
            IGPEnvironment returnEnv = null;

            try
            {
                if (environmentManager.GetLocalEnvironments().Count > 0)
                    returnEnv = gpUtils.GetEnvironment(environmentManager.GetLocalEnvironments(), name);

                if (returnEnv == null)
                    returnEnv = gpUtils.GetEnvironment(environmentManager.GetEnvironments(), name);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);
            }

            return returnEnv;
        }
Example #3
0
        private string DetermineLyrLocation(IArray environments, FileInfo initialLyrLocation)
        {
            string outputLyrLocation = initialLyrLocation.FullName;

            try
            {
                IGPUtilities3 gpUtilities3 = new GPUtilitiesClass();

                // first check for the scratch workspace
                // next for the current workspace
                // and as a last resort pick the user's temp workspace
                IGPEnvironment scratchworkspaceGPEnvironment = gpUtilities3.GetEnvironment(environments, "scratchworkspace");
                if (scratchworkspaceGPEnvironment != null)
                {
                    IDEWorkspace scratchworkspace = scratchworkspaceGPEnvironment.Value as IDEWorkspace;

                    if (scratchworkspace != null)
                    {
                        if (scratchworkspace.WorkspaceType == esriWorkspaceType.esriFileSystemWorkspace)
                        {
                            if (((IGPValue)scratchworkspace).IsEmpty() == false)
                            {
                                outputLyrLocation = ((IGPValue)scratchworkspace).GetAsText() + System.IO.Path.DirectorySeparatorChar + initialLyrLocation.Name;
                                return(outputLyrLocation);
                            }
                        }
                        else if (scratchworkspace.WorkspaceType == esriWorkspaceType.esriLocalDatabaseWorkspace)
                        {
                            if (((IGPValue)scratchworkspace).IsEmpty() == false)
                            {
                                int    slashIndexPosition      = ((IGPValue)scratchworkspace).GetAsText().LastIndexOf("\\");
                                string potentialFolderLocation = ((IGPValue)scratchworkspace).GetAsText().Substring(0, slashIndexPosition);

                                if (Directory.Exists(potentialFolderLocation))
                                {
                                    outputLyrLocation = potentialFolderLocation + System.IO.Path.DirectorySeparatorChar + initialLyrLocation.Name;
                                    return(outputLyrLocation);
                                }
                            }
                        }
                        else
                        {
                            string localTempPath = System.IO.Path.GetTempPath();
                            outputLyrLocation = localTempPath + initialLyrLocation.Name;
                            return(outputLyrLocation);
                        }
                    }
                }


                IGPEnvironment currentworkspaceGPEnvironment = gpUtilities3.GetEnvironment(environments, "workspace");

                if (currentworkspaceGPEnvironment != null)
                {
                    IDEWorkspace currentWorkspace = currentworkspaceGPEnvironment.Value as IDEWorkspace;

                    if (currentWorkspace != null)
                    {
                        if (currentWorkspace.WorkspaceType == esriWorkspaceType.esriFileSystemWorkspace)
                        {
                            if (((IGPValue)currentWorkspace).IsEmpty() == false)
                            {
                                outputLyrLocation = ((IGPValue)currentWorkspace).GetAsText() + System.IO.Path.DirectorySeparatorChar + initialLyrLocation.Name;
                                return(outputLyrLocation);
                            }
                        }
                    }
                }

                // combine temp directory path with the name of the incoming lyr file
                string tempPath = System.IO.Path.GetTempPath();
                outputLyrLocation = tempPath + initialLyrLocation.Name;
            }
            catch { }

            return(outputLyrLocation);
        }
        public void UpdateParameters(ESRI.ArcGIS.esriSystem.IArray paramvalues, ESRI.ArcGIS.Geoprocessing.IGPEnvironmentManager pEnvMgr)
        {
            IGPUtilities3 gpUtilities3 = new GPUtilitiesClass();

            IGPParameter revisionTableParameter = paramvalues.get_Element(in_changesTablesNumber) as IGPParameter;
            IGPValue revisionTableGPValue = gpUtilities3.UnpackGPValue(revisionTableParameter);

            if (revisionTableGPValue.IsEmpty() == false)
            {
                if (gpUtilities3.Exists(revisionTableGPValue) == false)
                {
                    IGPEnvironment workspaceEnvironment = gpUtilities3.GetEnvironment(pEnvMgr.GetEnvironments(), "workspace");
                    IGPValue workspace = workspaceEnvironment.Value;

                    if (workspace.IsEmpty() == false)
                    {
                        string old_locationValue = workspace.GetAsText() + System.IO.Path.DirectorySeparatorChar + revisionTableGPValue.GetAsText();
                        try
                        {
                            string location = gpUtilities3.QualifyOutputCatalogPath(old_locationValue);

                            if (location.Length != old_locationValue.Length)
                            {
                                revisionTableGPValue.SetAsText(location);
                                gpUtilities3.PackGPValue(revisionTableGPValue, revisionTableParameter);
                            }
                        }
                        catch { }
                    }
                }
            }

            gpUtilities3.ReleaseInternals();
        }
        private string DetermineLyrLocation(IArray environments, FileInfo initialLyrLocation)
        {
            string outputLyrLocation = initialLyrLocation.FullName;

            try
            {
                IGPUtilities3 gpUtilities3 = new GPUtilitiesClass();

                // first check for the scratch workspace
                // next for the current workspace
                // and as a last resort pick the user's temp workspace
                IGPEnvironment scratchworkspaceGPEnvironment = gpUtilities3.GetEnvironment(environments, "scratchworkspace");
                if (scratchworkspaceGPEnvironment != null)
                {
                    IDEWorkspace scratchworkspace = scratchworkspaceGPEnvironment.Value as IDEWorkspace;

                    if (scratchworkspace != null)
                    {
                        if (scratchworkspace.WorkspaceType == esriWorkspaceType.esriFileSystemWorkspace)
                        {
                            if (((IGPValue)scratchworkspace).IsEmpty() == false)
                            {
                                outputLyrLocation = ((IGPValue)scratchworkspace).GetAsText() + System.IO.Path.DirectorySeparatorChar + initialLyrLocation.Name;
                                return outputLyrLocation;
                            }
                        }
                        else if (scratchworkspace.WorkspaceType == esriWorkspaceType.esriLocalDatabaseWorkspace)
                        {
                            if (((IGPValue)scratchworkspace).IsEmpty() == false)
                            {
                                int slashIndexPosition = ((IGPValue)scratchworkspace).GetAsText().LastIndexOf("\\");
                                string potentialFolderLocation = ((IGPValue)scratchworkspace).GetAsText().Substring(0, slashIndexPosition);

                                if (Directory.Exists(potentialFolderLocation))
                                {
                                    outputLyrLocation = potentialFolderLocation + System.IO.Path.DirectorySeparatorChar + initialLyrLocation.Name;
                                    return outputLyrLocation;
                                }
                            }
                        }
                        else
                        {
                            string localTempPath = System.IO.Path.GetTempPath();
                            outputLyrLocation = localTempPath + initialLyrLocation.Name;
                            return outputLyrLocation;
                        }
                    }
                }

                IGPEnvironment currentworkspaceGPEnvironment = gpUtilities3.GetEnvironment(environments, "workspace");

                if (currentworkspaceGPEnvironment != null)
                {
                    IDEWorkspace currentWorkspace = currentworkspaceGPEnvironment.Value as IDEWorkspace;

                    if (currentWorkspace != null)
                    {
                        if (currentWorkspace.WorkspaceType == esriWorkspaceType.esriFileSystemWorkspace)
                        {
                            if (((IGPValue)currentWorkspace).IsEmpty() == false)
                            {
                                outputLyrLocation = ((IGPValue)currentWorkspace).GetAsText() + System.IO.Path.DirectorySeparatorChar + initialLyrLocation.Name;
                                return outputLyrLocation;
                            }
                        }
                    }
                }

                // combine temp directory path with the name of the incoming lyr file
                string tempPath = System.IO.Path.GetTempPath();
                outputLyrLocation = tempPath + initialLyrLocation.Name;
            }
            catch { }

            return outputLyrLocation;
        }