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