// populates the booking tab
        private async void PopulateBookingTab(JObject result)
        {
            //get the ids of promotions available for that restaurant
            string[] promotionIds = Promotions.GetPromotionIDs(result);

            var dateStart    = DateTime.Now;
            var dateStartStr = dateStart.ToString("yyyy-MM-ddTHH:mm:ss");

            var dateEnd    = DateTime.Now.AddDays(7.00);
            var dateEndStr = dateEnd.ToString("yyyy-MM-ddTHH:mm:ss");

            string url = "https://api.rdbranch.com/api/ConsumerApi/v1/Restaurant/" + this.micrositename + "/AvailabilityForDateRangeV2?";

            //get the available slots for that restaurant - with the provided partySize
            JObject r = await Requests.APICallPost(url, token, dateStartStr, dateEndStr, partySize);

            var checkAvail = r["AvailableDates"].ToString();

            //if timeSlots available
            if (r != null && checkAvail.Length > 2)
            {
                AvailabilityView.IsVisible    = true;
                NoAvailabilityLabel.IsVisible = false;

                //add promotions for that timeSlot
                if (promotionIds.Length > 0)
                {
                    string        promotions_url = "https://api.rdbranch.com/api/ConsumerApi/v1/Restaurant/" + this.micrositename + "/Promotion?";
                    StringBuilder builder        = new StringBuilder();

                    builder.Append(promotions_url);
                    foreach (string id in promotionIds)
                    {
                        builder.Append("&promotionIds=" + id);
                    }

                    JArray array_promotions = await Requests.APICallGet(builder.ToString(), token);

                    promotions.Clear();
                    foreach (var pr in array_promotions)
                    {
                        var valid = pr["ValidityPeriods"].First;

                        promotions.Add(new Promotion
                        {
                            Name        = pr["Name"].ToString(),
                            Description = pr["Description"].ToString(),
                            StartTime   = valid["StartTime"].ToString(),
                            EndTime     = valid["EndTime"].ToString(),
                            StartDate   = Convert.ToDateTime(valid["StartDate"].ToString()).Date.ToString("dd/MM/yyyy"),
                            EndDate     = Convert.ToDateTime(valid["EndDate"].ToString()).Date.ToString("dd/MM/yyyy"),
                        });
                    }
                }
            }
            else
            {
                AvailabilityView.IsVisible    = false;
                NoAvailabilityLabel.IsVisible = true;
            }

            Promotions.GetAvailablePromotions(r, slotNumber);

            AvailabilityView.ItemsSource = availableTimes;
        }