private void ExhibitVisited(object sender, Exhibit exhibit) { Waypoint waypoint = DetailsRoute.Waypoints.First(wp => Equals(wp.Exhibit, exhibit)); bool moved = DetailsRoute.MoveToPassiveSet(waypoint); if (moved) { OnPropertyChanged(nameof(DetailsRoute)); } }
public override void OnDisappearing() { base.OnDisappearing(); locationManager.RemoveLocationListener(this); if (DetailsRoute.IsRouteFinished()) { DetailsRoute.ResetRoute(); } nearbyExhibitManager.ExhibitVisitedEvent -= ExhibitVisited; }
private async void ExhibitVisited(object sender, Exhibit exhibit) { var waypoint = DetailsRoute.Waypoints.First(wp => Equals(wp.Exhibit, exhibit)); var moved = await DetailsRoute.MoveToPassiveSet(waypoint); if (moved) { DbManager.InTransaction(transaction => { exhibit.Unlocked = true; }); OnPropertyChanged(nameof(DetailsRoute)); } }
/// <summary> /// Starts navigation for the route. /// </summary> private async void StartRoute() { if (DetailsRoute.IsRouteStarted()) { string result = await Navigation.DisplayActionSheet( Strings.RouteDetailspageViewModel_RouteStarted, Strings.RouteDetailspageViewModel_Back, null, Strings.RouteDetailspageViewModel_ContinueRoute, Strings.RouteDetailspageViewModel_RestartRoute); if (result.Equals(Strings.RouteDetailspageViewModel_RestartRoute)) { DetailsRoute.ResetRoute(); } else if (result.Equals(Strings.RouteDetailspageViewModel_Back)) { return; } } await Navigation.PushAsync(new NavigationPageViewModel (DetailsRoute)); }