private static async Task <JSONEnroll> DoRoll(int id, bool enroll) { HttpMessage response = await Login.Instance.DoPost(enroll?$"api/talks/enroll/{id}" : $"api/talks/unenroll/{id}"); if (!response.Success) { return(new JSONEnroll() { message = response.Message, success = response.Success }); } string json = await response.Response.Content.ReadAsStringAsync(); JSONEnroll canEnroll = JsonConvert.DeserializeObject <JSONEnroll>(json); return(canEnroll); }
private async void OnEnroll(object sender, EventArgs args) { EnrollButton.IsEnabled = false; if (!Login.Instance.IsLoggedIn) { await Application.Current.MainPage.DisplayAlert("Please login!", "Login to enroll for a talk.", "OK"); EnrollButton.IsEnabled = true; return; } if (_enrolled) { JSONEnroll jsonEnroll = await Enroll.UnEnrollTalk(Appointment.Id); if (!jsonEnroll.success) { await Application.Current.MainPage.DisplayAlert("Failed.", "Unenrollment did not succeed. Please try again.", "OK"); EnrollButton.IsEnabled = true; return; } } else { JSONEnroll jsonEnroll = await Enroll.EnrollTalk(Appointment.Id); if (!jsonEnroll.success) { await Application.Current.MainPage.DisplayAlert("Failed.", "Enrollment did not succeed. Please try again.", "OK"); EnrollButton.IsEnabled = true; return; } } // It worked! _enrolled = !_enrolled; EnrollButton.Text = _enrolled ? "Unenroll" : "Enroll"; EnrollButton.IsEnabled = true; }