async void OnAlertYesNoClicked(object sender, SelectedItemChangedEventArgs args) { var item = args.SelectedItem as RecensioneViewModel; if (item == null) { // the item was deselected return; } if (item.UserName == Settings.User) { bool answer = await DisplayAlert("Conferma", "Vuoi cancellare questa recensione?", "Si", "No"); Debug.WriteLine("Answer: " + answer); if (answer) { if (Settings.User == item.UserName) { Debug.WriteLine("ok" + Settings.User); var uri = "http://marchetrekking.altervista.org/cancellaRecensione.php"; //body della post request var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string> ("recensione", item.Id.ToString()), }); //inoltro richiesta al server HttpClient client = new HttpClient(); var response = await client.PostAsync(uri, content); var risp = await response.Content.ReadAsStringAsync(); //risposta del server string s = risp.Trim(); if (s.Equals("ok")) { DisplayAlert("Alert", "Recensione cancellata", "OK"); //update del contenuto di questa pagina var vUpdatedPage = new RecensionePercorso(); vUpdatedPage.BindingContext = new ListRecensioneViewModel(item.NomePercorso); Navigation.InsertPageBefore(vUpdatedPage, this); _ = Navigation.PopAsync(); } else { DisplayAlert("Errore", "Errore", "OK"); } } else { DisplayAlert("Alert", "Non puoi cancellare questa recensione", "Ok"); } } } lstView.SelectedItem = null; }
protected async void GoRecensioni(object sender, EventArgs args) { //passo il nome del percorso alla pagina delle recensioni var binding = (DettaglioPercorsoViewModel)BindingContext; var recensione = new RecensionePercorso(); recensione.BindingContext = new ListRecensioneViewModel(binding.Item.Nome); await Navigation.PushAsync(recensione); }