public async Task <bool> AddRSVP(string rsvpStatus)
        {
            bool returnObject = false;
            bool retry        = false;

            do
            {
                try
                {
                    string     address = "http://www.myeventit.com/PHP/AddRSVP.php/";
                    var        client  = App.serverData.GetHttpClient();
                    ServerRSVP user    = new ServerRSVP();
                    user.userID     = App.serverData.mei_user.currentUser.userID;
                    user.eventID    = ((HomeLayout)App.Current.MainPage).GetCurrentDomainEvent().s_event.eventID;
                    user.firmID     = App.firmID;
                    user.rsvpStatus = rsvpStatus;
                    var userString = JsonConvert.SerializeObject(user);

                    var postData = new List <KeyValuePair <string, string> >();
                    postData.Add(new KeyValuePair <string, string>("user", userString));
                    HttpContent         content = new FormUrlEncodedContent(postData);
                    CancellationToken   c       = new CancellationToken();
                    HttpResponseMessage result  = await client.PostAsync(address, content, c);

                    var isRegistered = await result.Content.ReadAsStringAsync();

                    if (isRegistered.ToString() == "1")
                    {
                        status       = rsvpStatus;
                        returnObject = true;
                    }
                }
                catch (Exception e)
                {
                    if (e.GetType() == typeof(System.Net.WebException))
                    {
                        retry = await App.Current.MainPage.DisplayAlert("Alert", "No internet connection found. Please check your internet.", "Retry", "Cancel");
                    }
                    else
                    {
                        retry = true;
                    }
                    if (!retry)
                    {
                        App.AppHaveInternet = false;
                        if (App.Current.MainPage.GetType() != typeof(LoginPage))
                        {
                            App.Current.MainPage = new LoginPage();
                        }
                    }
                }
            } while (retry);
            return(returnObject);
        }
        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);
        }