private void LoadPhotosOfFriendsWithoutMutualFriends(HttpContext context)
        {
            IList<FacebookHelper.FacebookFriendData> friendsData = FacebookHelper.GetFriendsDataList(context);
            if (Classes.User.IsUsernameTaken(friendsData.Last().Username))
            {
                var lstFriendsIds = new List<long>();
                try
                {
                    // fetch facebook friends without images
                    using (var db = new ezFixUpDataContext())
                    {
                        var tmpList =
                            CompiledQueries.FetchActiveFriendsForUsername(db, MatchmakerHelper.CurrentUsername).ToList();
                        var tmpArray =
                            tmpList.Where(
                                f =>
                                f.User1.u_logincount == 0 && f.User1.u_facebookid.HasValue &&
                                !f.User1.u_face_control_approved)
                                .OrderBy(f => f.User1.u_name).Select(f => f.User1.u_facebookid.Value).ToArray();
                        foreach (var un in tmpArray)
                        {
                            int imgId = Photo.GetPrimaryOrDefaultId(un.ToString());
                            if (imgId < 0)
                                lstFriendsIds.Add(un);
                            if (lstFriendsIds.Count > 100) break;
                        }
                    }
                }
                catch (Exception ex)
                {
                }
                if (!FacebookHelper.IsCurrentSessionConnected || lstFriendsIds.Count <= 0)
                    return;

                try
                {
                    var parameterizedThreadsList =
                        new Classes.ezFixUpParallel.ParameterizedThreadsList<long>(
                            lstFriendsIds,
                            (new FacebookHelper.FetchAndSaveSaveFacebookFriendImageClass()).FetchAndSaveFacebookImageByFacebookId,
                            context);
                    parameterizedThreadsList.RunAsBackgroundThreads = true;
                    parameterizedThreadsList.ExecuteParallelWork(10);
                }
                catch (Exception ex)
                {
                }
            }
            else
            {
                Global.GetSessionState()["SessionRefreshState"] = SessionRefreshStateEnum.AddFriendsWithoutMutualFriends;
            }
        }
        private void LoadPhotosOfFriendsWithMutualFriends(HttpContext context)
        {
            CacheImagesOfFriends(context, ImageHandler.eFacebookImageType.Large);
            var friendsIDsWithMutualFriends =
                ((List<MutualFriendItem>)HttpContext.Current.GetSession()["FacebookMutualFriends"])
                    .Select(f => f.FriendID).Distinct().ToList();
            DateTime[] time = new DateTime[5];
            time[0] = DateTime.Now;
            if (friendsIDsWithMutualFriends != null && Classes.User.IsUsernameTaken(friendsIDsWithMutualFriends.Last().ToString()))
            {
                var lstFriendsIds = new List<long>();
                try
                {
                    // fetch facebook friends without images
                    using (var db = new ezFixUpDataContext())
                    {
                        var tmpList =
                            CompiledQueries.FetchActiveFriendsForUsername(db, MatchmakerHelper.CurrentUsername).ToList();
                        var tmpArray =
                            tmpList.Where(
                                f =>
                                f.User1.u_logincount == 0 && f.User1.u_facebookid.HasValue &&
                                !f.User1.u_face_control_approved)
                                .OrderBy(f => f.User1.u_name).Select(f => f.User1.u_facebookid.Value).ToArray();

                        foreach (var un in tmpArray)
                        {
                            int imgId = Photo.GetPrimaryOrDefaultId(un.ToString());
                            if (imgId < 0)
                                lstFriendsIds.Add(un);
                            if (lstFriendsIds.Count > 60) break;
                        }
                    }
                }
                catch (Exception ex)
                {
                }
                if (lstFriendsIds.Count > 0)
                {
                    try
                    {
                        var parameterizedThreadsList =
                            new Classes.ezFixUpParallel.ParameterizedThreadsList<long>(
                                lstFriendsIds,
                                (new FacebookHelper.FetchAndSaveSaveFacebookFriendImageClass()).
                                    FetchAndSaveFacebookImageByFacebookId,
                                context);
                        parameterizedThreadsList.RunAsBackgroundThreads = true;
                        parameterizedThreadsList.ExecuteParallelWork(10);
                    }
                    catch (Exception ex)
                    {
                    }
                }
                else
                {
                    Global.GetSessionState()["SessionRefreshState"] = SessionRefreshStateEnum.AddFriendsWithoutMutualFriends;
                    FacebookHelper.AddFriends(PageBase.GetCurrentUserSession(), 100, context, null);
                }
            }
            else
            {
                Global.GetSessionState()["SessionRefreshState"] = SessionRefreshStateEnum.AddFriendsWithMutualFriends;
                FacebookHelper.AddFriends(PageBase.GetCurrentUserSession(), 0, context, null);
            }
        }