/// <summary>
        ///
        /// </summary>
        /// <param name="requestFromUI"></param>
        /// <returns></returns>
        public BookAppointmentResponse BookAppointment(BookAppointmentRequest requestFromUI)
        {
            try
            {
                if (requestFromUI == null || requestFromUI.AppointmentCriteria == null)
                {
                    throw new FaultException("Request can not be empty");
                }

                //service.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
                //service.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["Password"];

                appointmentCriteria reqCriteria = new appointmentCriteria()
                {
                    activityExternalId     = requestFromUI.AppointmentCriteria.ActivityExternalId,
                    appointmentDurationMin = requestFromUI.AppointmentCriteria.AppointmentDurationMin,
                    campaignExternalId     = requestFromUI.AppointmentCriteria.CampaignExternalId,
                    campaignTimezone       = requestFromUI.AppointmentCriteria.CampaignTimezone,
                    clientExternalId       = requestFromUI.AppointmentCriteria.ClientExternalId,
                    clientTimezone         = requestFromUI.AppointmentCriteria.ClientTimezone,
                    numberOfAttendees      = requestFromUI.AppointmentCriteria.NumberOfAttendees,
                    programExternalId      = requestFromUI.AppointmentCriteria.ProgramExternalId,
                    resourceExternalId     = requestFromUI.AppointmentCriteria.ResourceExternalId,
                    locationExternalId     = requestFromUI.AppointmentCriteria.LocationExternalId,
                    resourcepoolExternalId = requestFromUI.AppointmentCriteria.ResourcepoolExternalId,
                    setupDurationMin       = requestFromUI.AppointmentCriteria.SetupDurationMin,
                };

                var serviceResponse = service.bookAppointment(reqCriteria, DateTime.Now, requestFromUI.ExternalClientId);
                return(new BookAppointmentResponse()
                {
                    TTStatus = new Entities.TTStatus()
                    {
                        Cause = serviceResponse.cause,
                        Result = serviceResponse.result,
                        Status = serviceResponse.status
                    }
                });
            }
            catch (FaultException exception)
            {
                throw exception;
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="requestFromUI"></param>
        /// <returns></returns>
        public BookAppointmentResponse BookAppointment(BookAppointmentRequest requestFromUI)
        {
            try
            {
                if (requestFromUI == null || requestFromUI.AppointmentCriteria == null)
                    throw new FaultException("Request can not be empty");

                //service.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
                //service.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["Password"];

                appointmentCriteria reqCriteria = new appointmentCriteria()
                {
                    activityExternalId = requestFromUI.AppointmentCriteria.ActivityExternalId,
                    appointmentDurationMin = requestFromUI.AppointmentCriteria.AppointmentDurationMin,
                    campaignExternalId = requestFromUI.AppointmentCriteria.CampaignExternalId,
                    campaignTimezone = requestFromUI.AppointmentCriteria.CampaignTimezone,
                    clientExternalId = requestFromUI.AppointmentCriteria.ClientExternalId,
                    clientTimezone = requestFromUI.AppointmentCriteria.ClientTimezone,
                    numberOfAttendees = requestFromUI.AppointmentCriteria.NumberOfAttendees,
                    programExternalId = requestFromUI.AppointmentCriteria.ProgramExternalId,
                    resourceExternalId = requestFromUI.AppointmentCriteria.ResourceExternalId,
                    locationExternalId = requestFromUI.AppointmentCriteria.LocationExternalId,
                    resourcepoolExternalId = requestFromUI.AppointmentCriteria.ResourcepoolExternalId,
                    setupDurationMin = requestFromUI.AppointmentCriteria.SetupDurationMin,
                };

                var serviceResponse = service.bookAppointment(reqCriteria, DateTime.Now, requestFromUI.ExternalClientId);
                return new BookAppointmentResponse()
                {
                    TTStatus = new Entities.TTStatus()
                    {
                        Cause = serviceResponse.cause,
                        Result = serviceResponse.result,
                        Status = serviceResponse.status
                    }
                };
            }
            catch (FaultException exception)
            {
                throw exception;
            }
        }