Ejemplo n.º 1
0
        private void SearchBox_OnQueryChanged(SearchBox sender, SearchBoxQueryChangedEventArgs args)
        {
            var searchType = _searchBy.SelectedItem as ComboBoxItem;
            var searchQ    = searchType.Content.ToString();

            if (args.QueryText.EndsWith(" "))
            {
                ViewModel["BikesShort"] = CacheDataCollection;
                return;
            }
            var temp = new ObservableCollection <CollectedDataGroup>();

            switch (searchQ)
            {
            case "Name":
                if (args.QueryText.Length >= 3)
                {
                    BikeDataCollection.Clear();
                    foreach (
                        var item in
                        BikeDataGroups.Where(
                            item => item.CommonName.ToLower().Contains(args.QueryText.ToLower())))
                    {
                        temp.Add(new CollectedDataGroup(
                                     item.CommonName,
                                     item.Id,
                                     item.Lat,
                                     item.Lon,
                                     item.Url,
                                     item.AdditionalProperties[0].Value,
                                     item.AdditionalProperties[1].Value,
                                     item.AdditionalProperties[2].Value,
                                     item.AdditionalProperties[3].Value,
                                     item.AdditionalProperties[4].Value,
                                     item.AdditionalProperties[5].Value,
                                     item.AdditionalProperties[6].Value,
                                     item.AdditionalProperties[7].Value,
                                     item.AdditionalProperties[8].Value));
                    }
                }
                else if (args.QueryText.Length == 0)
                {
                    BikeDataCollection.Clear();
                    foreach (
                        var item in
                        BikeDataGroups)
                    {
                        temp.Add(new CollectedDataGroup(
                                     item.CommonName,
                                     item.Id,
                                     item.Lat,
                                     item.Lon,
                                     item.Url,
                                     item.AdditionalProperties[0].Value,
                                     item.AdditionalProperties[1].Value,
                                     item.AdditionalProperties[2].Value,
                                     item.AdditionalProperties[3].Value,
                                     item.AdditionalProperties[4].Value,
                                     item.AdditionalProperties[5].Value,
                                     item.AdditionalProperties[6].Value,
                                     item.AdditionalProperties[7].Value,
                                     item.AdditionalProperties[8].Value));
                    }
                }
                else
                {
                    return;
                }

                break;

            case "Id":
                if (_bikepointListView.ItemTemplate != ExtendedBikePointTemplate)
                {
                    _bikepointListView.ItemTemplate = ExtendedBikePointTemplate;
                }
                BikeDataCollection.Clear();

                foreach (var item in BikeDataGroups.Where(item => item.Id.ToLower().Contains(args.QueryText.ToLower())))
                {
                    temp.Add(new CollectedDataGroup(
                                 item.CommonName,
                                 item.Id,
                                 item.Lat,
                                 item.Lon,
                                 item.Url,
                                 item.AdditionalProperties[0].Value,
                                 item.AdditionalProperties[1].Value,
                                 item.AdditionalProperties[2].Value,
                                 item.AdditionalProperties[3].Value,
                                 item.AdditionalProperties[4].Value,
                                 item.AdditionalProperties[5].Value,
                                 item.AdditionalProperties[6].Value,
                                 item.AdditionalProperties[7].Value,
                                 item.AdditionalProperties[8].Value));
                }
                break;

            case "Lat":
                if (_bikepointListView.ItemTemplate != ExtendedBikePointTemplate)
                {
                    _bikepointListView.ItemTemplate = ExtendedBikePointTemplate;
                }
                BikeDataCollection.Clear();
                foreach (var item in BikeDataGroups.Where(item => item.Lat.ToString().ToLower().Contains(args.QueryText.ToLower())))
                {
                    temp.Add(new CollectedDataGroup(
                                 item.CommonName,
                                 item.Id,
                                 item.Lat,
                                 item.Lon,
                                 item.Url,
                                 item.AdditionalProperties[0].Value,
                                 item.AdditionalProperties[1].Value,
                                 item.AdditionalProperties[2].Value,
                                 item.AdditionalProperties[3].Value,
                                 item.AdditionalProperties[4].Value,
                                 item.AdditionalProperties[5].Value,
                                 item.AdditionalProperties[6].Value,
                                 item.AdditionalProperties[7].Value,
                                 item.AdditionalProperties[8].Value));
                }
                break;

            case "Lon":
                if (_bikepointListView.ItemTemplate != ExtendedBikePointTemplate)
                {
                    _bikepointListView.ItemTemplate = ExtendedBikePointTemplate;
                }
                BikeDataCollection.Clear();
                foreach (var item in BikeDataGroups.Where(item => item.Lon.ToString().ToLower().Contains(args.QueryText.ToLower())))
                {
                    temp.Add(new CollectedDataGroup(
                                 item.CommonName,
                                 item.Id,
                                 item.Lat,
                                 item.Lon,
                                 item.Url,
                                 item.AdditionalProperties[0].Value,
                                 item.AdditionalProperties[1].Value,
                                 item.AdditionalProperties[2].Value,
                                 item.AdditionalProperties[3].Value,
                                 item.AdditionalProperties[4].Value,
                                 item.AdditionalProperties[5].Value,
                                 item.AdditionalProperties[6].Value,
                                 item.AdditionalProperties[7].Value,
                                 item.AdditionalProperties[8].Value));
                }
                break;
            }

            BikeDataCollection.Add(temp);
            ViewModel["BikesShort"] = BikeDataCollection;
        }
Ejemplo n.º 2
0
        private async Task GetLocalData()
        {
            Backdrop.Fill           = new SolidColorBrush(Colors.DarkRed);
            TextBlock.Text          = "Something went wrong...";
            Bikeimage.Visibility    = Visibility.Collapsed;
            ProgressRing.Visibility = Visibility.Visible;
            TextBlock.Visibility    = Visibility.Visible;
            Backdrop.Visibility     = Visibility.Visible;
            ProgressRing.IsActive   = true;

            var temp            = new ObservableCollection <CollectedDataGroup>();
            var statsDataGroups = await StatsDataSource.GetGroupsAsync();

            BikeDataGroups = await BikePointDataSource.GetLocalGroupsAsync();

            foreach (var item in BikeDataGroups)
            {
                temp.Add(new CollectedDataGroup(
                             item.CommonName,
                             item.Id,
                             item.Lat,
                             item.Lon,
                             item.Url,
                             item.AdditionalProperties[0].Value,
                             item.AdditionalProperties[1].Value,
                             item.AdditionalProperties[2].Value,
                             item.AdditionalProperties[3].Value,
                             item.AdditionalProperties[4].Value,
                             item.AdditionalProperties[5].Value,
                             item.AdditionalProperties[6].Value,
                             item.AdditionalProperties[7].Value,
                             item.AdditionalProperties[8].Value));

                var pushpin = new Pushpin()
                {
                    Background = new SolidColorBrush(Colors.DodgerBlue),
                };
                MapLayer.SetPosition(pushpin, new Location(item.Lat, item.Lon));
                _bikeMap.Children.Add(pushpin);
                pushpin.Tapped         += BikePointPin_Tapped;
                pushpin.PointerEntered += BikePointPin_PointerEntered;
                pushpin.PointerExited  += BikePointPin_PointerExited;
            }

            CacheDataCollection.Add(temp);
            BikeDataCollection.Add(temp);

            //Set map location
            try
            {
                TextBlock.Text = "Getting your location.";
                var geolocator  = new Geolocator();
                var geoposition = await geolocator.GetGeopositionAsync();

                if (geoposition != null)
                {
                    _bikeMap.SetView(new Location(geoposition.Coordinate.Point.Position.Latitude,
                                                  geoposition.Coordinate.Point.Position.Longitude), 18, TimeSpan.FromSeconds(3));

                    MapLayer.SetPosition(_selfpushpin, new Location(geoposition.Coordinate.Point.Position.Latitude,
                                                                    geoposition.Coordinate.Point.Position.Longitude));
                    _bikeMap.Children.Remove(_selfpushpin);
                    _bikeMap.Children.Add(_selfpushpin);
                }
            }
            catch (Exception)
            {
                _bikeMap.SetView(new Location(51.5072, 0.1275), 15);
            }



            ProgressRing.Visibility = Visibility.Collapsed;
            TextBlock.Visibility    = Visibility.Collapsed;
            Backdrop.Visibility     = Visibility.Collapsed;
            ProgressRing.IsActive   = false;
            ProgressRing.IsActive   = false;


            ViewModel["Costs"]      = statsDataGroups;
            ViewModel["BikesShort"] = BikeDataCollection;
        }