//public static Call MakeCallForTalkNow(Booking booking, IServices service)
        //{
        //    // Get name of customer and specialist
        //    string customerName = booking.Customer.FirstName + " " + booking.Customer.LastName;
        //    string specialistName = booking.Specialist.FirstName + " " + booking.Specialist.LastName;
        //    // TODO Remove it
        //    // Hard code for test
        //    booking.Customer.MobilePhone = "+61280114708";
        //    booking.Specialist.MobilePhone = "+61280114691";
        //    // .Hard code for test
        //    // Create url TwiML
        //    var _Url = new System.Web.Mvc.UrlHelper(System.Web.HttpContext.Current.Request.RequestContext);
        //    var twiMLUrl = _Url.Action("FirstClientStart", "Conference", new CallContextModel
        //    {
        //        BookingId = booking.Id,
        //        CallerId = booking.Customer.Id,
        //        ReceiverId = booking.Specialist.Id,
        //        IsCustomer = true,
        //        NatureOfEnquiry = booking.Enquiry
        //    });
        //    try
        //    {
        //        var call = service.CallManager.Call(twiMLUrl, booking.Specialist);
        //        // Update into database
        //        var callLog = new CallLog
        //        {
        //            CallerSid = call.Sid,
        //            Booking = booking,
        //            CallerStatus = call.Status,
        //            Caller = booking.Customer,
        //            Receiver = booking.Specialist,
        //            StartTime = DateTime.Now,
        //            EndTime = DateTime.Now
        //        };
        //        service.CallLog.Create(callLog);
        //        return call;
        //    }
        //    catch (Exception e)
        //    {
        //        // Log
        //        Log.Debug("Error making call. Error: " + e.Message + " StackTrace: " + e.StackTrace);
        //        throw new Exception("Error making call. Error: " + e.Message);
        //    }
        //}
        public static BookingStatus GetBookingStatusByListType(ListBookingType type)
        {
            BookingStatus status = BookingStatus.Requested;
            switch (type)
            {
                case ListBookingType.Alert:
                    break;

                case ListBookingType.Request:
                    status = BookingStatus.Requested;
                    break;

                case ListBookingType.Confirmed:
                    status = BookingStatus.Confirmed;
                    break;

                case ListBookingType.Past:
                    status = BookingStatus.Finish;
                    break;

                default:
                    break;
            }
            return status;
        }
        public ActionResult ListBookingPartial(ListBookingType type, string keyword)
        {
            //check List Booking Type to get list following status
            BookingStatus status = BookingHelper.GetBookingStatusByListType(type);

            //check consultant and get list booking
            ListBookingViewModel lstBookingViewModel = new ListBookingViewModel();
            lstBookingViewModel.IsConsultant = IsSpecialist();

            if (type != ListBookingType.Alert)
            {
                lstBookingViewModel.ListBooking =
                    MapperBooking(Services.Booking.GetListBookingForDashBoard(CurrentUser.Id, CurrentUser.Role, status));

                // Count booking list
                lstBookingViewModel.Total = lstBookingViewModel.ListBooking.Count();
            }
            else // If list booking type is alert
            {
                lstBookingViewModel.BookingEventList =
                    MapperBookingEvent(Services.Booking.GetBookingEventListForDashBoard(CurrentUser.Id));

                // Count booking event list
                lstBookingViewModel.Total = lstBookingViewModel.BookingEventList.Count();
            }

            lstBookingViewModel.ListBookingType = type;
            return PartialView("_ListBookingPartial", lstBookingViewModel);
        }