private async void UpdateTrackingStatus(long statuscode, long tracked_item_id, long member_id, long object_id)
        {
            Library_APICall apiLibrary = new Library_APICall();
            string res = null;
            try
            {
                ShowStatusMessage(statuscode);
            }
            catch (Exception ex)
            {

            }
            try
            {
                res = "{ \"template\":{ \"data\":[{\"name\":\"status_code\",\"value\":" + statuscode + "}";
                res += ",{\"name\":\"tracked_item_id\",\"value\":" + tracked_item_id + "}";
                res += ",{\"name\":\"member_id\",\"value\":" + member_id + "}";
                res += ",{\"name\":\"type\",\"value\":\"tracked_item_status\"}";
                res += "]}}";
                bool r = await apiLibrary.apiPUT((string)ApplicationData.Current.LocalSettings.Values["Tokens"], res, "https://api.teamsnap.com/v3/tracked_item_statuses/" + object_id);

                if (r == true)
                {
                    memberobj.Clear();
                    memberobj = await TrackingItemStatus.getTrackingItemStatus(tracked_item_id);
                    membertracking.Clear();
                    foreach (var item in memberobj)
                    {
                        membertracking.Add(item);
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
        private async void saveAvailability_Click(object sender, RoutedEventArgs e)
        {
            string res = null;
            try
            {
                //res = "{ \"template\":{ \"data\":[{\"name\":\"status_code\",\"value\":" + status_code + "},{\"name\":\"notes\",\"value\":\"" + availabilityNoteTextBox.Text + "\"},{\"name\":\"event_id\",\"value\":" + eventid + "},{\"name\":\"member_id\",\"value\":" + ((long)ApplicationData.Current.LocalSettings.Values["currentMemberIDforLoggedInUser"]).ToString() + "},{\"name\":\"notes_member_id\",\"value\":" + ((long)ApplicationData.Current.LocalSettings.Values["currentMemberIDforLoggedInUser"]).ToString() + "},{\"name\":\"type\",\"value\":\"availability\"}]}}";
                availabilityNoteTextBox.Visibility = Visibility.Collapsed;
                addAvailabilityNoteButton.Visibility = Visibility.Collapsed;
                availabilityNoteTextBlockGrid.Visibility = Visibility.Visible;
                availabilityNoteTextBlock.Text = availabilityNoteTextBox.Text;
               
                res = "{ \"template\":{ \"data\":[{\"name\":\"status_code\",\"value\":" + status_code + "}";
                res += ",{\"name\":\"notes\",\"value\":\"" + availabilityNoteTextBox.Text + "\"}";
                res += ",{\"name\":\"event_id\",\"value\":" + eventid + "}";
                res += ",{\"name\":\"member_id\",\"value\":" + ((long)ApplicationData.Current.LocalSettings.Values["currentMemberIDforLoggedInUser"]).ToString() + "}";
                res += ",{\"name\":\"author_member_id\",\"value\":" + ((long)ApplicationData.Current.LocalSettings.Values["currentMemberIDforLoggedInUser"]).ToString() + "}";
                res += ",{\"name\":\"notes_author_member_id\",\"value\":" + ((long)ApplicationData.Current.LocalSettings.Values["currentMemberIDforLoggedInUser"]).ToString() + "}";
                res += ",{\"name\":\"type\",\"value\":\"availability\"}]}}";
                Debug.WriteLine(res);
            }
            catch (Exception ex)
            {
                await mlibrary.writeToLogFile("Exception  in creating res for Availability PUT : " + ex, false);
            }

            try
            {
                reventavail.eventMemberAvailability[eventMemberAvailability_pos].memberAvailable[memberAvailable_pos].status_code = status_code;
                reventavail.eventMemberAvailability[eventMemberAvailability_pos].memberAvailable[memberAvailable_pos].notes = availabilityNoteTextBlock.Text;
                //res = AvailabilityAPI.eventAvailabilityDataSerializer(reventavail);
                Debug.WriteLine("Availability res : " + res);
            }
            catch (Exception ex)
            {
                await mlibrary.writeToLogFile("Exception in writing setting status code for reventavail and serializing reventavail : " + ex, true);
            }
            /// Updating collections 
            try
            {
                var rmemberstatus = reventavail.eventMemberAvailability[eventMemberAvailability_pos].memberAvailable;
                teamid = reventavail.eventMemberAvailability[eventMemberAvailability_pos].team_id;
                eventid = reventavail.eventMemberAvailability[eventMemberAvailability_pos].eventid;
                if (String.IsNullOrEmpty(availabilityNoteTextBox.Text))
                {
                    availabilityNoteTextBox.Visibility = Visibility.Collapsed;
                    //addAvailabilityNoteButton.Visibility = Visibility.Visible;
                    addAvailabilityNoteButton.Visibility = Visibility.Collapsed;
                    addAvailabilityNoteButton.Content = "+ Add availability note";
                    availabilityNoteTextBlockGrid.Visibility = Visibility.Collapsed;
                }
                if (rmemberstatus != null)
                {
                    rmemGoing.Clear();
                    rmemMaybe.Clear();
                    rmemNotGoing.Clear();
                    rmemUnknown.Clear();
                    foreach (var rmemstat in rmemberstatus)
                    {
                        if (rmemstat.status_code == 1)
                        {
                            rmemGoing.Add(rmemstat);
                        }
                        else if (rmemstat.status_code == 2)
                        {
                            rmemMaybe.Add(rmemstat);
                        }
                        else if (rmemstat.status_code == 0)
                        {
                            rmemNotGoing.Add(rmemstat);
                        }
                        else
                        {
                            rmemUnknown.Add(rmemstat);
                        }
                    }

                    if (rmemGoing != null)
                    {
                        if (rmemGoing.Count > 0)
                        {
                            NumGoing.Text = (rmemGoing.Count).ToString();
                            goingEmailButton.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            NumGoing.Text = "0";
                        }
                    }
                    if (rmemMaybe != null)
                    {
                        if (rmemMaybe.Count > 0)
                        {
                            NumMaybeGoing.Text = (rmemMaybe.Count).ToString();
                            maybeGoingEmailButton.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            NumMaybeGoing.Text = "0";
                        }
                    }
                    if (rmemNotGoing != null)
                    {
                        if (rmemNotGoing.Count > 0)
                        {
                            NumNotGoing.Text = (rmemNotGoing.Count).ToString();
                            notGoingEmailButton.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            NumNotGoing.Text = "0";
                        }
                    }
                    if (rmemUnknown != null)
                    {
                        if (rmemUnknown.Count > 0)
                        {
                            unknown.Text = (rmemUnknown.Count).ToString();
                            unknownGoingEmailButton.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            unknown.Text = "0";
                        }
                    }
                }
                else
                {
                    availabilityData.Visibility = Visibility.Collapsed;
                    noAvailabilityData.Visibility = Visibility.Visible;
                    availabilityGrid.Visibility = Visibility.Collapsed;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception in updating availability collection : " + ex);
                await mlibrary.writeToLogFile("Exception in updating availability collection : " + ex, true);
            }
            /// Done updating collections.
            try
            {
                saveAvailability.Visibility = Visibility.Collapsed;

                mlibrary.writeFile("EventsMemberAvailability" + Constants.CurrentTeamID, res);
            }
            catch (Exception ex)
            {
                await mlibrary.writeToLogFile("Setting saveAvailability button to collapse + writing reventavail to file", true);
            }
            Library_APICall apiLibrary = new Library_APICall();
            try
            {
                if (!String.IsNullOrEmpty(hrefForAvailabilityRequest))
                {
                    Debug.WriteLine("href: " + hrefForAvailabilityRequest);
                    bool postRes = await apiLibrary.apiPUT((string)ApplicationData.Current.LocalSettings.Values["Tokens"], res, hrefForAvailabilityRequest);
                }
            }
            catch (Exception ex)
            {
                await mlibrary.writeToLogFile("Exception in making a PUT request : " + ex, false);
            }
            //Debug.WriteLine(postRes);
        }