private async void OnCancelReservation(object sender, EventArgs e)
        {
            bool answer = await DisplayAlert("Cancel Reservation", "Are you sure?", "Accept", "Cancel");

            if (answer)
            {
                var reservation = new Reservations {
                    ID_Route = route.ID, ID_User = currentUser.ID
                };
                IsBusy = true;
                await reservationsManager.DeleteReservationAsync(reservation);

                IsBusy = false;
                await DisplayAlert("Success", "Reservation Canceled", "Accept");

                await Navigation.PopAsync(true);
            }
        }
        public async Task DeleteReservationAsync(Reservations reservation)
        {
            try
            {
                List <Reservations> reservationsList = await GetReservationsWhere(res => res.ID_Route == reservation.ID_Route && res.ID_User == reservation.ID_User);

                foreach (var res in reservationsList)
                {
                    await reservationsTable.DeleteAsync(res);
                }
            }
            catch (MobileServiceInvalidOperationException msioe)
            {
                Debug.WriteLine(@"INVALID {0}", msioe.Message);
            }
            catch (Exception e)
            {
                Debug.WriteLine(@"ERROR {0}", e.Message);
            }
        }
        private async void OnReserved(object sender, EventArgs e)
        {
            bool r = await DisplayAlert("Reservation", "Add reservation?", "Accept", "Cancel");

            if (r == true)
            {
                activityIndicator.IsRunning = true;

                var newReservation = new Reservations
                {
                    ID_Route = route.ID,
                    ID_User  = currentUser.ID
                };

                await reservationsManager.SaveReservationAsync(newReservation);

                activityIndicator.IsRunning = false;
                cancelButton.IsVisible      = true;
                reserveButton.IsVisible     = false;
            }
        }
        private async void LoadReservation()
        {
            string id_user  = currentUser.ID;
            string id_route = route.ID;

            Reservations reservation = new Reservations
            {
                ID_User  = id_user,
                ID_Route = id_route
            };

            List <Reservations> reservationResult = await reservationsManager.GetReservationsWhere(reserv => reserv.ID_Route == reservation.ID_Route && reserv.ID_User == reservation.ID_User);

            if (reservationResult.Count != 0)
            {
                cancelButton.IsVisible  = true;
                reserveButton.IsVisible = false;
            }
            else
            {
                reserveButton.IsVisible = true;
            }
        }
        private async void LoadData()
        {
            this.IsBusy = true;

            userRoute = await usersManager.GetUserWhere(userSelect => userSelect.ID == userRoute.ID);

            nameLabel.Text        = userRoute.Name;
            ageLabel.Text         = "Age: " + userRoute.Age;
            phoneLabel.Text       = "Phone: " + userRoute.Phone;
            descriptionLabel.Text = route.Comments;
            departureLabel.Text   = "Departure: \n" + route.Depart_Date.ToString("dd/MMMM H:mm ") + "h";

            Reservations reservation = new Reservations
            {
                ID_Route = route.ID
            };

            List <Reservations> reservations = await reservationsManager.GetReservationsWhere(reserv => reserv.ID_Route == reservation.ID_Route);

            seatsLabel.Text = "Seats Available: " + (route.Capacity - reservations.Count);

            this.IsBusy = false;
        }