private async Task <string> GetParcelTypeNameFromFeatureLayer(ParcelLayer myParcelFabricLayer, FeatureLayer featLayer, GeometryType geomType) { if (featLayer == null) //nothing to do, return empty string { return(String.Empty); } IEnumerable <string> parcelTypeNames = await myParcelFabricLayer.GetParcelTypeNames(); foreach (string parcelTypeName in parcelTypeNames) { if (geomType == GeometryType.Polygon) { var polygonLyrParcelTypeEnum = await myParcelFabricLayer.GetParcelPolygonLayerByTypeName(parcelTypeName); foreach (FeatureLayer lyr in polygonLyrParcelTypeEnum) { if (lyr == featLayer) { return(parcelTypeName); } } polygonLyrParcelTypeEnum = await myParcelFabricLayer.GetHistoricParcelPolygonLayerByTypeName(parcelTypeName); foreach (FeatureLayer lyr in polygonLyrParcelTypeEnum) { if (lyr == featLayer) { return(parcelTypeName); } } } if (geomType == GeometryType.Polyline) { var lineLyrParcelTypeEnum = await myParcelFabricLayer.GetParcelLineLayerByTypeName(parcelTypeName); foreach (FeatureLayer lyr in lineLyrParcelTypeEnum) { if (lyr == featLayer) { return(parcelTypeName); } } lineLyrParcelTypeEnum = await myParcelFabricLayer.GetHistoricParcelLineLayerByTypeName(parcelTypeName); foreach (FeatureLayer lyr in lineLyrParcelTypeEnum) { if (lyr == featLayer) { return(parcelTypeName); } } } } return(String.Empty); }
private async Task <string> CheckParcelFabricStatusAsync() { try { var lic = ArcGIS.Core.Licensing.LicenseInformation.Level; if (lic < ArcGIS.Core.Licensing.LicenseLevels.Standard) { return("Insufficient License Level for Parcel Fabric."); } _taxLayerPolys = null; _lotLayerPolys = null; _taxLayerLines = null; _lotLayerLines = null; _importParcelLineLayer = null; if (MapView.Active?.Map == null) { return("No active mapview"); } _parcelFabricLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType <ParcelLayer>().FirstOrDefault(); // if there is no fabric in the map then bail if (_parcelFabricLayer == null) { return("No Parcel Fabric layer found in the TOC"); } var recordsLayer = await _parcelFabricLayer.GetRecordsLayerAsync(); if (recordsLayer == null) { return("No records layer for the Parcel Fabric was found"); } { _recordLayer = recordsLayer.FirstOrDefault(); } if (MapView.Active?.Map == null) { return("No active mapview"); } _taxLayerPolys = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameTax)).FirstOrDefault(); if (_taxLayerPolys == null) { return($@"{LyrNameTax} layer is missing"); } _lotLayerPolys = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameLot)).FirstOrDefault(); if (_lotLayerPolys == null) { return($@"{LyrNameLot} layer is missing"); } _taxLayerLines = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameTax + "_Lines")).FirstOrDefault(); if (_taxLayerLines == null) { return($@"{LyrNameTax} layer is missing"); } _lotLayerLines = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameLot + "_Lines")).FirstOrDefault(); if (_lotLayerLines == null) { return($@"{LyrNameLot} layer is missing"); } _importParcelLineLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().Where(fl => fl.Name.Equals(LyrNameImport)).FirstOrDefault(); if (_importParcelLineLayer == null) { return($@"{LyrNameImport} layer is missing"); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($@"Error in CheckParcelFabricStatusAsync: {ex}"); } return(string.Empty); }