ArcGISPortalViewer.ViewModel.MapViewModel.OnUpdateMeasureArea C# (CSharp) Method

OnUpdateMeasureArea() private method

private OnUpdateMeasureArea ( object commandParameter ) : void
commandParameter object
return void
        private void OnUpdateMeasureArea(object commandParameter)
        {
            if (!(commandParameter is EventArgs) || m_MeasureLayer == null)
                return;
            if (commandParameter is MeasureUpdatedEventArgs)
            {
                m_MeasureLayer.Graphics.Clear();
                var e = commandParameter as MeasureUpdatedEventArgs;
                if (e.Area is Polygon)
                    m_MeasureLayer.Graphics.Add(new Graphic() { Geometry = e.Area, Symbol = measureAreaSymbol });
            }
            else if (commandParameter is MeasureCompletedEventArgs)
            {
                m_MeasureLayer.Graphics.Clear();
                var e = commandParameter as MeasureCompletedEventArgs;
                if (e.Error == null && !e.IsCanceled)
                {
                    if (e.Geometry is Polyline)
                    {
                        var polyline = e.Geometry as Polyline;
                        if (polyline.Parts != null && polyline.Parts.Count > 0)
                        {
                            var vertices = polyline.Parts[0].GetPoints();
                            if (vertices != null && vertices.Count() > 2)
                            {
                                var area = new Polygon(vertices, polyline.SpatialReference);
                                m_MeasureLayer.Graphics.Add(new Graphic() { Geometry = area, Symbol = measureAreaSymbol });
                            }
                            m_MeasureLayer.Graphics.Add(new Graphic() { Geometry = polyline, Symbol = measureLineSymbol });
                            int i = 0;
                            if (vertices != null)
                                foreach (var vertex in vertices)
                                {
                                    var mapPoint = vertex;
                                    var graphic = new Graphic() { Geometry = mapPoint };
                                    graphic.Symbol = GetVertexSymbol(++i);
                                    m_MeasureLayer.Graphics.Add(graphic);
                                }
                        }
                    }
                }
            }
            measureHasItems = m_MeasureLayer.Graphics.Count > 0;
            base.RaisePropertyChanged("IsClearGraphicsVisible");
        }