예제 #1
0
        private async void NearestStop()
        {
            nearestStopId          = 0;
            ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Visible;
            testoControllo.Text    = "Sto ottenendo la posizione...";
            try
            {
                Geoposition geoposition = await Settings.getPosition();

                Geopoint punto = new Geopoint(new BasicGeoposition()
                {
                    Latitude  = geoposition.Coordinate.Point.Position.Latitude,
                    Longitude = geoposition.Coordinate.Point.Position.Longitude
                });
                testoControllo.Text = "Sto cercando la stazione più vicina...";
                TrainStop nearest = Settings.nearestStop(punto, await DBSource.Stations);
                nearestStopId        = nearest.Id;
                testoControllo.Text  = nearest.Name;
                listView.ItemsSource = await DBSource.getPartenze(nearest.Id, DateTime.Now, false, 7);

                positionNotFound       = false;
                ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            } catch (DisabledPositionException ex) {
                testoControllo.Text    = ex.Message;
                positionNotFound       = true;
                ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            catch (PositionNotFoundException ex)
            {
                testoControllo.Text    = ex.Message;
                positionNotFound       = true;
                ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            catch (ArgumentOutOfRangeException)
            {
                testoControllo.Text    = "Errore. Non ci sono dati.";
                positionNotFound       = false;
                ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            catch (System.UnauthorizedAccessException)
            {
                testoControllo.Text    = "Posizione non disponibile.";
                positionNotFound       = true;
                ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            }
            if (refresh != null)
            {
                refresh.IsEnabled = true;
            }
            System.Diagnostics.Debug.WriteLine(positionNotFound);
        }
예제 #2
0
        private async void VediTutto_Click(object sender, RoutedEventArgs e)
        {
            ObservableCollection <string> direzioni = new ObservableCollection <string>();

            direzioni.Add("Tutte");
            IEnumerable <Partenza> part;

            try
            {
                part = await listaPartenze(true);
            } catch
            {
                return;
            }
            string[] dire = part.Select(dirz => dirz.Direction).ToArray();
            foreach (string direzione in dire)
            {
                if (!direzioni.Contains(direzione))
                {
                    direzioni.Add(direzione);
                }
            }
            DBSource.TempDirezioni   = direzioni;
            DBSource.TempMostraTutto = showAll;
            DBSource.DialogOk        = false;
            FilterDialog filtro = new FilterDialog();

            try
            {
                await filtro.ShowAsync();

                if (DBSource.DialogOk)
                {
                    System.Diagnostics.Debug.WriteLine("OKDIALOG");
                    System.Diagnostics.Debug.WriteLine(DBSource.tempDirezione);
                    showAll = DBSource.TempMostraTutto;
                    System.Diagnostics.Debug.WriteLine("MOSTRATUTTO = " + showAll);
                    if (DBSource.TempMostraTutto)
                    {
                        partenze = await DBSource.getPartenze(trainStop.Id, DBSource.tempDirezione);
                    }
                    else
                    {
                        partenze = await DBSource.getPartenze(trainStop.Id, DateTime.Now, DBSource.tempDirezione);
                    }
                    itemListView.ItemsSource = partenze;
                }
            }
            catch (Exception) { }
        }
예제 #3
0
 private async Task <IEnumerable <Partenza> > listaPartenze(bool show)
 {
     try
     {
         IEnumerable <Partenza> partenze;
         if (show)
         {
             partenze = await DBSource.getPartenze(trainStop.Id, true);
         }
         else
         {
             partenze = await DBSource.getPartenze(trainStop.Id, DateTime.Now, true);
         }
         return(partenze);
     }
     catch (InvalidTrainStopException ex)
     {
         printErrorMessage(ex, ex.IDTreno);
         return(null);
     }
 }
예제 #4
0
 private async void getPartenze(bool show)
 {
     try
     {
         progressBar.Visibility = Windows.UI.Xaml.Visibility.Visible;
         if (show)
         {
             partenze = await DBSource.getPartenze(trainStop.Id);
         }
         else
         {
             partenze = await DBSource.getPartenze(trainStop.Id, DateTime.Now);
         }
         itemListView.ItemsSource = partenze;
         progressBar.Visibility   = Windows.UI.Xaml.Visibility.Collapsed;
     }
     catch (InvalidTrainStopException ex)
     {
         printErrorMessage(ex, ex.IDTreno);
     }
 }