public RequestResult AddToFavourite(UsersIdentification usersIndentification)
        {
            try
            {
                if ((Services.Users.GetUserById((Guid)CurrentUser.Id).Role != Role.Customer) || (Services.Users.GetUserById(usersIndentification.SpecialistId).Role != Role.Specialist))
                {
                    return new RequestResult { Status = false };
                }
                if (Services.Users.CreateFavourite(usersIndentification.SpecialistId, usersIndentification.CustomerId))
                {
                    return new RequestResult { Status = true };
                }

                return new RequestResult { Status = false, Message = "This expert has been added into favourite list." };
            }
            catch (Exception e)
            {
                Log.Error("Insert into Favourite table", e);
                return new RequestResult { Status = false, Message = e.Message };
            }
        }
        public SpecialistProfileViewModel SpecialistProfile(UsersIdentification usersId)
        {
            SpecialistProfileViewModel model = new SpecialistProfileViewModel();

            var account = Services.Users.GetUserById(usersId.SpecialistId);

            model = SpecialistDetailModelMapper.ModelMapper(account, CurrentUser.Id, Services);

            string timeZoneId = CurrentUser != null ? CurrentUser.DefaultTimeZoneId : TimeZoneInfo.Local.Id;

            model.SpecialistDetail.ListStandardHour =
                TeleConsult.Web.Code.Helpers.DateTimeHelper.TimeZoneForWorkingSchedule(
                    timeZoneId, model.SpecialistDetail.ListStandardHour,
                    Utilities.GetTimeZoneIdByName(account.Locations[0].TimeZone));

            for (int i = 0; i < model.SpecialistDetail.Specializations.Count; i++)
            {
                model.SpecialistDetail.Specializations[i].CustomerPricing = Services.Booking.GetCustomerPricing(model.SpecialistDetail.Specializations[i].Id);
            }

            return model;
        }
        public RequestResult RemoveFromFavourite(UsersIdentification usersIndentification)
        {
            try
            {
                if (CurrentUser.Role == Role.Customer)
                {
                    if (Services.Users.DeleteFavourite(usersIndentification.SpecialistId, usersIndentification.CustomerId))
                    {
                        return new RequestResult { Status = true };
                    }

                    return new RequestResult { Status = false, Message = NotificationMessage.RemoveFromFavourite };
                }
                return new RequestResult { Status = false };
            }
            catch (Exception e)
            {
                Log.Error("Remove a record in Favourite table", e);
                return new RequestResult { Status = false, Message = e.Message };
            }
        }
        public RequestResult IsFavourite(UsersIdentification usersIndentification)
        {
            try
            {
                if (Services.Users.IsFavourite(usersIndentification.SpecialistId, usersIndentification.CustomerId))
                {
                    return new RequestResult { Status = true };
                }

                return new RequestResult { Status = false };
            }
            catch (Exception e)
            {
                Log.Error("Check is favourite or not", e);
                return new RequestResult { Status = false, Message = e.Message };
            }
        }