Beispiel #1
0
        public DestinationPickPage(string navigraphName, CategoryType category)
        {
            InitializeComponent();

            DestinationItems = new ObservableCollection <DestinationItem>();

            _navigraphName = navigraphName;

            IEnumerable <Waypoint> waypoints = from region in NavigraphStorage.LoadNavigraphXML(navigraphName).Regions
                                               from waypoint in region.Waypoints
                                               where waypoint.Category.Equals(category)
                                               select waypoint;

            foreach (Waypoint waypoint in waypoints)
            {
                DestinationItems.Add(new DestinationItem
                {
                    ID           = waypoint.ID,
                    WaypointName = waypoint.Name,
                    Floor        = waypoint.Floor
                });
            }

            MyListView.ItemsSource = from waypoint in DestinationItems
                                     group waypoint by waypoint.Floor into waypointGroup
                                     orderby waypointGroup.Key
                                     select new Grouping <int, DestinationItem>(waypointGroup.Key, waypointGroup);
        }
Beispiel #2
0
        /// <summary>
        /// If it is the first time to get waypoint then get the value of
        /// route options and start the corresponding session.
        /// </summary>
        private void StartSession(EventArgs args)
        {
            const int  falseInt  = -100;
            List <int> avoidList = new List <int>();

            if (Application.Current.Properties.ContainsKey("AvoidStair"))
            {
                avoidList.Add(
                    (bool)Application.Current.Properties["AvoidStair"] ?
                    (int)ConnectionType.Stair : falseInt);
                avoidList.Add(
                    (bool)Application.Current.Properties["AvoidElevator"] ?
                    (int)ConnectionType.Elevator : falseInt);
                avoidList.Add(
                    (bool)Application.Current.Properties["AvoidEscalator"] ?
                    (int)ConnectionType.Escalator : falseInt);

                avoidList = avoidList.Distinct().ToList();
                avoidList.Remove(falseInt);
            }

            // Start the session
            _session = new Session(
                NavigraphStorage.LoadNavigraphXML(_navigraphName),
                (args as WaypointScanEventArgs).WaypointID,
                _destinationID,
                avoidList.ToArray());

            _navigationResultHandler                   = new EventHandler(HandleNavigationResult);
            _session.Event.SessionResultHandler       += _navigationResultHandler;
            WaypointEvent.CurrentWaypointEventHandler += _session.DetectRoute;
        }
        async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (e.Item is Location location)
            {
                switch (NavigraphStorage.LoadNavigraphXML(location.UserNaming).Name)
                {
                case "NTUH_YunLin":
                    var answser = await DisplayAlert("Go to navigation homepage", location.UserNaming, "OK", "Cancel");

                    if (answser)
                    {
                        await Navigation.PushAsync(new NavigationHomePage(location.UserNaming));
                    }
                    break;

                default:
                    break;
                }
            }
        }