public void AddListItem(WorkshopBooking book)
 {
     try
     {
         if (DateTime.ParseExact(book.ending, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture) < DateTime.Now)                     //Past
         {
             if (!dictGroupPast.ContainsKey(book.BookingId.ToString()))
             {
                 dictGroupPast.Add(book.BookingId.ToString(), book);
             }
             else
             {
                 dictGroupPast.Add((book.BookingId + book.studentID).ToString(), book);
             }
         }
         else
         {
             if (!dictGroupCurr.ContainsKey(book.BookingId.ToString()))
             {
                 dictGroupCurr.Add(book.BookingId.ToString(), book);
             }
             else
             {
                 dictGroupCurr.Add((book.BookingId + book.studentID).ToString(), book);
             }
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
            public void AddListItem(WorkshopBooking book)
            {
                try
                {
                    if (DateTime.ParseExact(book.ending, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture) < DateTime.Now) //Past
                    {
                        if (!dictGroupPast.ContainsKey (book.BookingId.ToString()))
                        {
                            dictGroupPast.Add (book.BookingId.ToString(), book);
                        }
                        else
                        {
                            dictGroupPast.Add ((book.BookingId + book.studentID).ToString(), book);
                        }
                    }
                    else
                    {
                        if (!dictGroupCurr.ContainsKey (book.BookingId.ToString()))
                        {
                            dictGroupCurr.Add (book.BookingId.ToString(), book);
                        }
                        else
                        {
                            dictGroupCurr.Add ((book.BookingId + book.studentID).ToString(), book);
                        }
                    }

                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            public override Java.Lang.Object InstantiateItem(ViewGroup container, int position)
            {
                try
                {
                    View view;

                    Int32 lastExpandedPosition = -1;

                    CreateExpandableListData();

                    if (position == 0)                     //Current Booking tab
                    {
                        view = LayoutInflater.From(container.Context).Inflate(Resource.Layout.CurrentBookingLayout, container, false);
                        container.AddView(view);

                        flCurrentBookings   = container.FindViewById <FrameLayout> (Resource.Id.flCurrentBookings);
                        flNoCurrentBookings = container.FindViewById <FrameLayout> (Resource.Id.flNoCurrentBookings);
                        elvCurrentBookings  = container.FindViewById <ExpandableListView> (Resource.Id.elvCurrentBookings);

                        if (dictGroupCurr.Count > 0)
                        {
                            flNoCurrentBookings.Visibility = ViewStates.Gone;
                            flCurrentBookings.Visibility   = ViewStates.Visible;

                            elvCurrentBookings.SetAdapter(new ExpandViewBookingAdapter(parent, dictGroupCurr));

                            elvCurrentBookings.ChildClick += delegate(object sender, ExpandableListView.ChildClickEventArgs e) {
                                string          itmGroup = lstKeysCurr [e.GroupPosition];
                                WorkshopBooking itmChild = dictGroupCurr [itmGroup];
                            };

                            elvCurrentBookings.GroupExpand += delegate(object sender, ExpandableListView.GroupExpandEventArgs e) {
                                if (lastExpandedPosition != -1 && e.GroupPosition != lastExpandedPosition)
                                {
                                    elvCurrentBookings.CollapseGroup(lastExpandedPosition);
                                }

                                lastExpandedPosition = e.GroupPosition;
                            };
                        }
                        else
                        {
                            flNoCurrentBookings.Visibility = ViewStates.Visible;
                            flCurrentBookings.Visibility   = ViewStates.Gone;
                        }
                    }
                    else                     //Past Bookings
                    {
                        view = LayoutInflater.From(container.Context).Inflate(Resource.Layout.PastBookings, container, false);
                        container.AddView(view);

                        flPastBookings   = container.FindViewById <FrameLayout> (Resource.Id.flPastBookings);
                        flNoPastBookings = container.FindViewById <FrameLayout> (Resource.Id.flNoPastBookings);
                        elvPastBookings  = container.FindViewById <ExpandableListView> (Resource.Id.elvPastBookings);

                        if (dictGroupPast.Count > 0)
                        {
                            flNoPastBookings.Visibility = ViewStates.Gone;
                            flPastBookings.Visibility   = ViewStates.Visible;
                            elvPastBookings.SetAdapter(new ExpandViewBookingAdapter(parent, dictGroupPast));

                            elvPastBookings.ChildClick += delegate(object sender, ExpandableListView.ChildClickEventArgs e) {
                                string          itmGroup = lstKeysPast [e.GroupPosition];
                                WorkshopBooking itmChild = dictGroupPast [itmGroup];
                            };

                            elvPastBookings.GroupExpand += delegate(object sender, ExpandableListView.GroupExpandEventArgs e) {
                                if (lastExpandedPosition != -1 && e.GroupPosition != lastExpandedPosition)
                                {
                                    elvPastBookings.CollapseGroup(lastExpandedPosition);
                                }

                                lastExpandedPosition = e.GroupPosition;
                            };
                        }
                        else
                        {
                            flNoPastBookings.Visibility = ViewStates.Visible;
                            flPastBookings.Visibility   = ViewStates.Gone;
                        }
                    }

                    return(view);
                }
                catch (Exception e)
                {
                    ErrorHandling.LogError(e, container.Context);
                    return(-1);
                }
            }