/// <summary> /// Called when the sketch finishes. This is where we will create the sketch operation and then execute it. /// </summary> /// <param name="geometry">The geometry created by the sketch.</param> /// <returns>A Task returning a Boolean indicating if the sketch complete event was successfully handled.</returns> protected async override Task <bool> OnSketchCompleteAsync(Geometry geometry) { if (CurrentTemplate == null || geometry == null) { //return Task.FromResult(false); return(false); } await QueuedTask.Run(async() => { // Create an EditOperation and make updates using Inspector var createOperation = new EditOperation(); createOperation.Name = string.Format("Create {0}", CurrentTemplate.Layer.Name); createOperation.SelectNewFeatures = true; createOperation.Create(CurrentTemplate, geometry); await createOperation.ExecuteAsync(); var selectedFeatures = ArcGIS.Desktop.Mapping.MapView.Active.Map.GetSelection(); var inspector = new ArcGIS.Desktop.Editing.Attributes.Inspector(); inspector.Load(selectedFeatures.ToDictionary().Keys.First(), selectedFeatures.ToDictionary().Values.First()); var squarefeetValue = inspector["Shape_Area"]; long squarefeetValueLong; squarefeetValueLong = Convert.ToInt64(squarefeetValue); inspector["High"] = (squarefeetValueLong / _dockpane.HighSetting); inspector["Medium"] = (squarefeetValueLong / _dockpane.MediumSetting); inspector["Low"] = (squarefeetValueLong / _dockpane.LowSetting); inspector["HighSetting"] = _dockpane.HighSetting; inspector["MediumSetting"] = _dockpane.MediumSetting; inspector["LowSetting"] = _dockpane.LowSetting; inspector["TargetSetting"] = _dockpane.TargetSetting; await inspector.ApplyAsync(); _dockpane.GetTotalValues(); }); return(true); }
/// <summary> /// Called when the sketch finishes. This is where we will create the sketch operation and then execute it. /// </summary> /// <param name="geometry">The geometry created by the sketch.</param> /// <returns>A Task returning a Boolean indicating if the sketch complete event was successfully handled.</returns> protected async override Task <bool> OnSketchCompleteAsync(Geometry geometry) { if (CurrentTemplate == null || geometry == null) { //return Task.FromResult(false); return(false); } await QueuedTask.Run(async() => { // Create an edit operation var createOperation = new EditOperation(); createOperation.Name = string.Format("Create {0}", CurrentTemplate.Layer.Name); createOperation.SelectNewFeatures = true; createOperation.Create(CurrentTemplate, geometry); await createOperation.ExecuteAsync(); var selectedFeatures = ArcGIS.Desktop.Mapping.MapView.Active.Map.GetSelection(); // get the first layer and its corresponding selected feature OIDs var firstSelectionSet = selectedFeatures.First(); // create an instance of the inspector class var inspector = new ArcGIS.Desktop.Editing.Attributes.Inspector(); // load the selected features into the inspector using a list of object IDs inspector.Load(firstSelectionSet.Key, firstSelectionSet.Value); var squarefeetValue = inspector["Shape_Area"]; long squarefeetValueLong; squarefeetValueLong = Convert.ToInt64(squarefeetValue); inspector["High"] = (squarefeetValueLong / _dockpane.HighSetting); inspector["Medium"] = (squarefeetValueLong / _dockpane.MediumSetting); inspector["Low"] = (squarefeetValueLong / _dockpane.LowSetting); inspector["HighSetting"] = _dockpane.HighSetting; inspector["MediumSetting"] = _dockpane.MediumSetting; inspector["LowSetting"] = _dockpane.LowSetting; inspector["TargetSetting"] = _dockpane.TargetSetting; await inspector.ApplyAsync(); _dockpane.GetTotalValues(); }); return(true); }