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; }
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; }