private void AddNewRegionPoint(PointLatLng point) { List <PointLatLng> locations; if (_newRegionData == null) { locations = new List <PointLatLng> { point }; } else { locations = new List <PointLatLng>(_newRegionData.Locations.Count); locations.AddRange(_newRegionData.Locations); locations.Add(point); ItemsRemoved?.Invoke(this, _newRegionData); } var newPoint = new NewRegionPoint(point); _newRegionPointsData.Add(newPoint); ItemsAdded?.Invoke(this, newPoint); _newRegionData = new NewRegionData(locations); ItemsAdded?.Invoke(this, _newRegionData); }
private void FlushNewRegion() { if (_newRegionData == null) { return; } var locations = _newRegionData.Locations; // Чистим карту ItemsRemoved?.Invoke(this, _newRegionData); ItemsRemoved?.Invoke(this, _newRegionPointsData); _newRegionData = null; _newRegionPointsData.Clear(); // Добавляем новоиспечённый регион. if (locations.Count > 2) { RegionCreated?.Invoke(this, locations); } }