public async Task <bool> CheckRSVP() { await((HomeLayout)App.Current.MainPage).SetLoading(true, "Syncing event RSVP status..."); status = ""; canEdit = false; buttonGrid.IsVisible = true; DomainEvent currentEvent = ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent(); ResetButtons(); //Debug.WriteLine(DateTime.Now); //Debug.WriteLine(DateTime.Now); ServerRSVP rsvp = await BaseFunctions.GetRSVPStatus(((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventID); if (rsvp != null) { status = rsvp.rsvpStatus; switch (rsvp.rsvpStatus) { case "Yes": yesButton.BackgroundColor = Color.FromHex("#00A651"); adminPost.Text = "Your attending status for " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName; yesButton.TextColor = Color.White; if (BaseFunctions.GetEventStatus(currentEvent) != EventStatus.Expired) { canEdit = true; } break; case "May be": maybeButton.BackgroundColor = Color.FromHex("#FFAC4E"); adminPost.Text = "Your attending status for " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName; maybeButton.TextColor = Color.White; if (BaseFunctions.GetEventStatus(currentEvent) != EventStatus.Expired) { canEdit = true; } break; case "No": noButton.BackgroundColor = Color.FromHex("#EF4300"); adminPost.Text = "Your attending status for " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName; noButton.TextColor = Color.White; if (currentEvent.s_event.eventAttendanceLimit > await BaseFunctions.RSVPCount(((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventID)) { if (BaseFunctions.GetEventStatus(currentEvent) != EventStatus.Expired) { canEdit = true; } } else { rsvpHeader.Text = "Its Full"; adminPost.Text = "Sorry " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName + " is at maximum capacity"; buttonGrid.IsVisible = false; yesButton.IsVisible = false; maybeButton.IsVisible = false; noButton.IsVisible = false; yesButton.TextColor = Color.Gray; yesButton.IsEnabled = false; maybeButton.TextColor = Color.Gray; maybeButton.IsEnabled = false; noButton.TextColor = Color.Gray; noButton.IsEnabled = false; } break; } } else { int count = await BaseFunctions.RSVPCount(((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventID); int attendance = currentEvent.s_event.eventAttendanceLimit; if (currentEvent.s_event.eventAttendanceLimit <= count) { rsvpHeader.Text = "Its Full"; adminPost.Text = "Sorry " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName + " is at maximum capacity"; buttonGrid.IsVisible = false; yesButton.IsVisible = false; maybeButton.IsVisible = false; noButton.IsVisible = false; yesButton.TextColor = Color.Gray; yesButton.IsEnabled = false; maybeButton.TextColor = Color.Gray; maybeButton.IsEnabled = false; noButton.TextColor = Color.Gray; noButton.IsEnabled = false; } else { if (BaseFunctions.GetEventStatus(currentEvent) != EventStatus.Expired) { canEdit = true; } } } if (BaseFunctions.GetEventStatus(currentEvent) == EventStatus.Expired) { rsvpHeader.Text = "Event Expired"; adminPost.Text = "Sorry " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName + " has concluded"; buttonGrid.IsVisible = false; yesButton.TextColor = Color.Gray; yesButton.IsEnabled = false; maybeButton.TextColor = Color.Gray; maybeButton.IsEnabled = false; noButton.TextColor = Color.Gray; noButton.IsEnabled = false; AddtoCalender.IsEnabled = false; } if (canEdit) { buttonGrid.IsVisible = true; SetRSVP("RSVP status", "Are you attending " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName + " ?"); switch (status) { case "Yes": SetRSVP("RSVP status", "Your attending status for " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName); break; case "May be": SetRSVP("RSVP status", "Your attending status for " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName); break; case "No": SetRSVP("RSVP status", "Your attending status for " + ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventName); break; } } await((HomeLayout)App.Current.MainPage).SetLoading(false, "Syncing event RSVP status..."); return(true); }