protected override Task OnActivateAsync(bool active) { if (active == true) { var targetLayers = MappingModule.ActiveTOC.SelectedLayers; FeatureLayer targetLayer = targetLayers.First() as FeatureLayer; _linearDisplayUnit = DisplayUnitEnvironment.GetEnvironment.DefaultMapLinearUnit; List <Layer> layersToKeep = new List <Layer>(targetLayers.Count); foreach (var item in targetLayers) { layersToKeep.Add(item); } if (GeometryExercisesSolutionModule.Current.HasBeenAdded == false) { string layerTemplatesLocation = String.Empty; DirectoryInfo arcgisProDirectoryInfo = new DirectoryInfo(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)); layerTemplatesLocation = Path.Combine(arcgisProDirectoryInfo.Parent.FullName, "Resources", "LayerTemplates", "en-US"); IEnumerable <FileInfo> fileInfos = new DirectoryInfo(layerTemplatesLocation).EnumerateFiles(); QueuingTaskFactory.StartNew(async() => { foreach (var templateFileInfo in fileInfos) { ItemInfoValue?packageItemInfo = await ItemInfoHelper.GetItemInfoValueAsync(templateFileInfo.FullName); PackageItem layerPackage = new PackageItem(packageItemInfo.Value); await layerPackage.AddToCurrentMapAsync(null); GeometryExercisesSolutionModule.Current.HasBeenAdded = true; break; } MappingModule.ActiveTOC.ClearSelection(); MappingModule.ActiveTOC.SelectLayers(layersToKeep); }); } } else { System.Diagnostics.Debug.WriteLine(""); } return(base.OnActivateAsync(active)); }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { string doubleAsString = String.Empty; double distance = 0.0; if (values[0] is ArcGIS.Core.Geometry.GeometryEngine.ProximityResult) { distance = ((ArcGIS.Core.Geometry.GeometryEngine.ProximityResult)values[0]).Distance; } if (values[1] is LinearDisplayUnit) { LinearDisplayUnit linearDisplayUnit = values[1] as LinearDisplayUnit; if (linearDisplayUnit.NumericFormat != null) { string numberFormatting = "{0:G}"; switch (linearDisplayUnit.NumericFormat.RoundingOption) { case esriRoundingOptionEnum.esriRoundNumberOfDecimals: numberFormatting = "{0:F" + linearDisplayUnit.NumericFormat.RoundingValue.ToString() + "}"; break; case esriRoundingOptionEnum.esriRoundNumberOfSignificantDigits: numberFormatting = "{0:G" + linearDisplayUnit.NumericFormat.RoundingValue.ToString() + "}"; break; default: break; } doubleAsString = String.Format(numberFormatting + " {1}", distance, linearDisplayUnit.DisplayNamePlural); } } return(doubleAsString); }