private void BusStopMenuFlyoutItem_Loading(FrameworkElement sender, object args)
        {
            var         textBlock = (sender as MenuFlyoutItem);
            BusStopName busStop   = textBlock.DataContext as BusStopName;

            textBlock.Text = busStop.IsFavourite ? "Usuń z ulubionych" : "Dodaj do ulubionych";
        }
        private void MenuFlyoutBusStopItem_Loaded(object sender, RoutedEventArgs e)
        {
            MenuFlyoutItem textBlock   = (sender as MenuFlyoutItem);
            BusStopName    busStopName = textBlock.DataContext as BusStopName;

            textBlock.Text = "Usuń z ulubionych";
        }
        private bool LoadFavouriteStops()
        {
            _FavouriteBusStops.Clear();

            List <BusStopName> favBusStops = SQLServices.QueryFavourite <BusStopName>("SELECT * FROM BusStopName");

            foreach (BusStopName favBusStopName in favBusStops)
            {
                var         name = GetString(GetBytes(favBusStopName.Name));
                BusStopName properBusStopName = Timetable.Instance.BusStopsNames.FirstOrDefault(p => p.Name == name);
                if (properBusStopName == null)
                {
                    continue;
                }
                _FavouriteBusStops.Add(properBusStopName);
            }

            return(_FavouriteBusStops.Count() > 0);

            byte[] GetBytes(string str)
            {
                var bytesString = str.Split(new char[] { ' ' });

                byte[] bytes = bytesString.Select(p => (byte)int.Parse(p)).ToArray <byte>();
                return(bytes);
            }

            string GetString(byte[] bytes)
            {
                char[] chars = new char[bytes.Length / sizeof(char)];
                System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
                return(new string(chars));
            }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var changeBusStopParametr = e.Parameter as Model.BusStopListPage.ChangeBusStopParametr;

            if (changeBusStopParametr == null)
            {
                return;
            }
            _SelectedBusStop = changeBusStopParametr.BusStopName;
        }
        private void BusStopMenuFlyoutItem_Click(object sender, RoutedEventArgs e)
        {
            BusStopName busStop = (sender as MenuFlyoutItem).DataContext as BusStopName;

            busStop.IsFavourite = !busStop.IsFavourite;
            Grid grid = _BusStopNamesDict.First(p => p.Key == busStop).Value;

            ChangeBusStopFavouriteSign(
                grid.Children.ElementAt(1) as TextBlock,
                busStop.FavouriteText);
        }
        private void BusStopFlyout_Click(object sender, RoutedEventArgs e)
        {
            BusStopName busStopName = ((sender as MenuFlyoutItem).DataContext as BusStopName);

            busStopName.IsFavourite = false;
            _FavouriteBusStops.Remove(busStopName);
            if (_FavouriteBusStops.Count() == 0)
            {
                FavouritePage_LoadedAsync(null, null);
            }
        }
        private void BusStopsListView_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
        {
            BusStopName busStopName = args.Item as BusStopName;

            if (_BusStopNamesDict.Any(p => p.Key == busStopName))
            {
                return;
            }
            Grid grid = (args.ItemContainer as ListViewItem).ContentTemplateRoot as Grid;

            _BusStopNamesDict.Add(busStopName, grid);
        }
        private void BusStopsListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (BusStopsListView.SelectedIndex == -1 || BusStopsListView.SelectedItem == null)
            {
                return;
            }

            BusStopName selectedBusStop = ((ListView)sender).SelectedItem as BusStopName;

            MainFrameHelper.GetMainFrame().Navigate(typeof(Pages.BusStops.BusStopsListPage),
                                                    new Model.BusStopListPage.ChangeBusStopParametr()
            {
                BusStopName = selectedBusStop
            });

            BusStopsListView.SelectedIndex = -1;
        }
        private void BusStopsListPage_Loaded(object sender, RoutedEventArgs e)
        {
            if (_SelectedBusStop != null)
            {
                _ListOfBusStopNames = Timetable.Instance.BusStopsNames.OrderBy(p => p.Name).ToObservableCollection();
                BusStopsListView.SelectionChanged += BusStopsListView_SelectionChanged1;
                BusStopsListView.SelectedItem      = _SelectedBusStop;
                _SelectedBusStop = null;
            }

            async void BusStopsListView_SelectionChanged1(object s, SelectionChangedEventArgs f)
            {
                BusStopsListView.SelectionChanged -= BusStopsListView_SelectionChanged1;
                await Task.Delay(150);

                BusStopsListView.ScrollIntoView(BusStopsListView.SelectedItem);
            }
        }
        private async void BusStopGoToBusStopPageButton_ClickAsync(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (!button.IsEnabled)
            {
                return;
            }

            button.IsEnabled = false;
            await Task.Delay(250);

            BusStopName selectedBusStopName = Timetable.Instance.BusStopsNames.First(p => p.Id == _SelectedBusStop.IdOfName);

            MainFrameHelper.GetMainFrame().Navigate(typeof(Pages.BusStops.BusStopsListPage),
                                                    new Model.BusStopListPage.ChangeBusStopParametr()
            {
                BusStopName = selectedBusStopName
            });

            button.IsEnabled = true;
        }
        private async void BusStopsListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var selectedBusStopName = BusStopsListView.SelectedItem as BusStopName;

            if (selectedBusStopName == null || selectedBusStopName == _LastClickedBusStop)
            {
                return;
            }

            if (_LoadingDependencyLines && selectedBusStopName != _LastClickedBusStop)
            {
                BusStopsListView.SelectedItem = _LastClickedBusStop;
                return;
            }

            _LastClickedBusStop = selectedBusStopName;
            SetLoadingStatus(true);

            _BusStopDependencies.Clear();

            await AddDependencyLinesToView(selectedBusStopName.Id);

            SetLoadingStatus(false);
        }