public void DeletePOI(PointOfInterest poi)
        {
            if (DeletePOIObject)
            {
                // For some reasons, Picture table doesn't refresh properly
                // We have to remove each element in the array manually
                DataServicePicture dsPicture = new DataServicePicture();
                foreach (Picture pic in dsPicture.LoadPicturesByPoiId(poi.Id))
                {
                    Trip.Pictures.Remove(pic);
                    dsPicture.DeletePicture(pic);
                }

                DataServiceNote dsNotes = new DataServiceNote();
                foreach (Note note in dsNotes.LoadNotesByPoiId(poi.Id))
                {
                    Trip.Notes.Remove(note);
                    dsNotes.DeleteNote(note);
                }
            }
            else
            {
                // For some reasons, Picture table doesn't refresh properly
                // We have to remove each element in the array manually
                DataServicePicture dsPicture = new DataServicePicture();
                foreach (Picture pic in dsPicture.LoadPicturesByPoiId(poi.Id))
                {
                    pic.PointOfInterest = null;
                }

                DataServiceNote dsNotes = new DataServiceNote();
                foreach (Note note in dsNotes.LoadNotesByPoiId(poi.Id))
                {
                    note.PointOfInterest = null;
                }
            }

            DataServicePoi dsPoi = new DataServicePoi();

            Trip.PointsOfInterests.Remove(poi);
            PointOfInterestList.Remove(poi);

            dsPoi.DeletePoi(poi, false);

            TripCommand.Execute(null);
        }
Ejemplo n.º 2
0
        private async void DownloadPoisListAsync()
        {
            if (!IsConnected())
            {
                Toast toast = Toast.MakeText(this, "Not conntected to internet. Please check your device network settings.", ToastLength.Short);
                toast.Show();
                return;
            }

            progressBar.Visibility = ViewStates.Visible;
            poiListData            = await new POIService().GetPOIListAsync();
            progressBar.Visibility = ViewStates.Gone;

            poiListAdapter      = new POIListViewAdapter(this, poiListData.Pois);
            poiListView.Adapter = poiListAdapter;

            poiListView.Post(() => {
                poiListView.SetSelection(scrollPosition);
            });
        }