public override bool OnOptionsItemSelected(IMenuItem item)
        {
            if (IsActive)
            {
                int id = item.ItemId;

                if (id == Android.Resource.Id.Home)
                {
                    MainActivity.IsNavDisabled = false;
                    Activity.OnBackPressed();
                    return(true);
                }
                else if (id == Resource.Id.view_restaurant)
                {
                    Fragment fragment = RestaurantViewFragment.NewInstance(booking.RestaurantId);
                    FragmentManager.BeginTransaction()
                    .Replace(Resource.Id.content_frame, fragment)
                    .AddToBackStack(null)
                    .Commit();
                }
                else if (id == Resource.Id.cancel_booking)
                {
                    new Android.App.AlertDialog.Builder(Activity).
                    SetIcon(Android.Resource.Drawable.IcDialogAlert).
                    SetTitle("Confirm").
                    SetMessage("Are you sure you want to cancel the booking?").
                    SetPositiveButton("Yes", (c, ev) =>
                    {
                        bool res = _bookingFacade.Cancel(booking.Id).Result;

                        if (res)
                        {
                            Toast.MakeText(Activity, "Booking Cancelled", ToastLength.Long).Show();
                            Fragment fragment = BookingIndexFragment.NewInstance();
                            FragmentManager.BeginTransaction()
                            .Replace(Resource.Id.content_frame, fragment)
                            .Commit();
                        }
                        else
                        {
                            Toast.MakeText(Activity, "An error occured whilst cancelling. Please try again later", ToastLength.Long).Show();
                        }
                    }).
                    SetNegativeButton("No", (c, ev) =>
                    {
                    }).
                    Show();
                }
            }

            return(base.OnOptionsItemSelected(item));
        }
        private void ListItemClicked(int position)
        {
            //this way we don't load twice, but you might want to modify this a bit.
            if (position == oldPosition)
            {
                return;
            }

            oldPosition = position;

            Fragment fragment = null;

            switch (position)
            {
            case 0:
                fragment = HomeFragment.NewInstance();
                break;

            case 1:
                fragment = RestaurantIndexFragment.NewInstance();
                break;

            case 2:
                fragment = MenuIndexFragment.NewInstance();
                break;

            case 3:
                fragment = LoginFragment.NewInstance();
                break;

            case 4:
                fragment = RegisterFragment.NewInstance();
                break;

            case 5:
                fragment = UserDetailsFragment.NewInstance();
                break;

            case 6:
                fragment = BookingIndexFragment.NewInstance();
                break;

            case 7:
                new Android.App.AlertDialog.Builder(this).
                SetIcon(Android.Resource.Drawable.IcDialogAlert).
                SetTitle("Confirm").
                SetMessage("Are you sure you want to logout?").
                SetPositiveButton("Yes", (c, ev) =>
                {
                    GenericFacade.Token    = "";
                    GenericFacade.UserName = "";
                    GenericFacade.UserId   = 0;
                    ToggleLogout();
                }).
                SetNegativeButton("No", (c, ev) =>
                {
                }).
                Show();
                break;

            case 8:
                ExitApp();
                break;
            }

            if (fragment != null)
            {
                FragmentManager.BeginTransaction()
                .Replace(Resource.Id.content_frame, fragment)
                .Commit();
            }
        }