I am trying to pass layers on a map to the intersect geoprocessing tool. For local data sources like shapefiles and geodatabase features the script is working fine but when the layer is a feature Service from AGOL or Portal it isn't working unless I use lyr.GetPath().ToString(). Is there a way to pass a layer to a geoprocessing tool regardless of if it is a shp, GDB, or feature service? Or is there a way to tell which ones are feature services so I can pass them in using lyr.GetPath()?
var lyrCrossings = map.GetLayersAsFlattenedList().OfType<FeatureLayer>().Where(l => l.Parent.ToString() == "Group" && l.IsVisible == true).ToList();
var lyrDatastorePath = await QueuedTask.Run(() => lyr.GetTable().GetDatastore().GetPath());
var lyrPathTableName = await QueuedTask.Run(() => lyr.GetTable().GetName());
string lyrPath = Path.Combine(lyrDatastorePath.LocalPath, lyrPathTableName.ToString());
List<string> inputList = new List<string>();
inputList.Add(lyrPath);
inputList.Add(secondPath);
var args = Geoprocessing.MakeValueArray(inputList, outputPath, "", "", "POINT");
string toolPath = "analysis.Intersect";
var result = await Geoprocessing.ExecuteToolAsync(toolPath, args, environments);