Пример #1
0
        public void SortByNameTest()
        {
            // Create content.

            //Visibilty needs to be name and resume to allow indexing
            const ProfessionalVisibility visibility = ProfessionalVisibility.Name | ProfessionalVisibility.Resume;

            var bx     = Guid.NewGuid();
            var member = new Member {
                Id = bx, FirstName = "b", LastName = "x"
            };

            member.VisibilitySettings.Professional.EmploymentVisibility = visibility;
            IndexContent(new MemberContent {
                Member = member, Candidate = new Candidate()
            });

            var ax = Guid.NewGuid();

            member = new Member {
                Id = ax, FirstName = "A", LastName = "x"
            };
            member.VisibilitySettings.Professional.EmploymentVisibility = visibility;
            IndexContent(new MemberContent {
                Member = member, Candidate = new Candidate()
            });

            var ay = Guid.NewGuid();

            member = new Member {
                Id = ay, FirstName = "a", LastName = "Y"
            };
            member.VisibilitySettings.Professional.EmploymentVisibility = visibility;
            IndexContent(new MemberContent {
                Member = member, Candidate = new Candidate()
            });


            // Ascending order.

            var searchQuery = new MemberSearchQuery {
                SortOrder = MemberSortOrder.FirstName, ReverseSortOrder = false
            };
            var searchResults = Search(searchQuery, 0, 10);

            CollectionAssert.AreEqual(new[] { ax, ay, bx }, searchResults.MemberIds.ToArray());

            // Descending order.

            searchQuery = new MemberSearchQuery {
                SortOrder = MemberSortOrder.FirstName, ReverseSortOrder = true
            };
            searchResults = Search(searchQuery, 0, 10);
            CollectionAssert.AreEqual(new[] { bx, ay, ax }, searchResults.MemberIds.ToArray());
        }
Пример #2
0
 private static NameValueCollection GetVisibilityParameters(ProfessionalVisibility visibility)
 {
     return(new NameValueCollection
     {
         { "ShowResume", visibility.IsFlagSet(ProfessionalVisibility.Resume) ? "true" : "false" },
         { "ShowName", visibility.IsFlagSet(ProfessionalVisibility.Name) ? "true" : "false" },
         { "ShowPhoneNumbers", visibility.IsFlagSet(ProfessionalVisibility.PhoneNumbers) ? "true" : "false" },
         { "ShowProfilePhoto", visibility.IsFlagSet(ProfessionalVisibility.ProfilePhoto) ? "true" : "false" },
         { "ShowRecentEmployers", visibility.IsFlagSet(ProfessionalVisibility.RecentEmployers) ? "true" : "false" },
     });
 }
Пример #3
0
        private bool CanAccess(ProfessionalContactDegree contactDegree, ProfessionalVisibility visibility)
        {
            // Must always be able to view the resume as well as any other visibility.

            if (visibility == ProfessionalVisibility.Resume)
            {
                return(CanAccess(contactDegree, _member.VisibilitySettings.Professional, visibility));
            }

            return(CanAccess(contactDegree, _member.VisibilitySettings.Professional, visibility) &&
                   CanAccess(contactDegree, _member.VisibilitySettings.Professional, ProfessionalVisibility.Resume));
        }
Пример #4
0
        private void LoadFormData()
        {
            // Set up the community related controls first.

            var affiliateId = LoggedInMember.AffiliateId;

            if (affiliateId != null)
            {
                var community = _communitiesQuery.GetCommunity(affiliateId.Value);
                if (community != null)
                {
                    phCommunity.Visible = true;
                    chkCommunity.Text   = community.Name + " logo";
                    litCommunity.Text   = community.Name;
                    ucCommunityCandidateImage.Initialise(community.Id);
                }
                else
                {
                    phCommunity.Visible = false;
                }
            }
            else
            {
                phCommunity.Visible = false;
            }

            ProfessionalVisibility ea = LoggedInMember.VisibilitySettings.Professional.EmploymentVisibility;
            bool accessResume         = (ea & ProfessionalVisibility.Resume) != 0;

            chkAnonResume.Checked = accessResume;
            if (accessResume)
            {
                chkName.Checked            = (ea & ProfessionalVisibility.Name) != 0;
                chkPhone.Checked           = (ea & ProfessionalVisibility.PhoneNumbers) != 0;
                chkPhoto.Checked           = (ea & ProfessionalVisibility.ProfilePhoto) != 0;
                chkRecentEmployers.Checked = (ea & ProfessionalVisibility.RecentEmployers) != 0;
                chkCommunity.Checked       = (ea & ProfessionalVisibility.Communities) != 0;

                pnlRecentEmployersMessage.Style["display"] =
                    (chkAnonResume.Checked && !chkRecentEmployers.Checked) ? "block" : "none";
            }
        }
Пример #5
0
        private CanContactStatus CanAccessUsingCredit(ProfessionalVisibility visibility)
        {
            // Must be able to not only view the specific visibility but must also:
            // - have effectively utilised a credit as well.
            // - be able to view the resume

            var usedCredit = false;

            switch (_effectiveContactDegree)
            {
            case ProfessionalContactDegree.Applicant:
            case ProfessionalContactDegree.Contacted:
            case ProfessionalContactDegree.Self:
                usedCredit = true;
                break;

            case ProfessionalContactDegree.NotContacted:
            case ProfessionalContactDegree.Public:
                break;
            }

            if (usedCredit && CanAccess(_effectiveContactDegree, visibility))
            {
                return(CanContactStatus.YesWithoutCredit);
            }

            // If they are currently at Free but they have a credit to use and they can view after utilising that credit ...

            if (_effectiveContactDegree == ProfessionalContactDegree.NotContacted && _contactCredits != null)
            {
                if (_contactCredits.Value > 0)
                {
                    return(CanAccess(ProfessionalContactDegree.Contacted, visibility) ? CanContactStatus.YesWithCredit : CanContactStatus.No);
                }
                if (_contactCredits.Value == 0)
                {
                    return(CanAccess(ProfessionalContactDegree.Contacted, visibility) ? CanContactStatus.YesIfHadCredit : CanContactStatus.No);
                }
            }
            return(CanContactStatus.No);
        }
Пример #6
0
        public void SaveFormData()
        {
            ProfessionalVisibility access = ProfessionalVisibility.None;

            if (chkAnonResume.Checked)
            {
                access = ProfessionalVisibility.Resume;

                if (chkName.Checked)
                {
                    access |= ProfessionalVisibility.Name;
                }

                if (chkPhone.Checked)
                {
                    access |= ProfessionalVisibility.PhoneNumbers;
                }

                if (chkPhoto.Checked)
                {
                    access |= ProfessionalVisibility.ProfilePhoto;
                }

                if (chkRecentEmployers.Checked)
                {
                    access |= ProfessionalVisibility.RecentEmployers;
                }

                if (chkCommunity.Checked)
                {
                    access |= ProfessionalVisibility.Communities;
                }
            }

            LoggedInMember.VisibilitySettings.Professional.EmploymentVisibility = access;
        }
Пример #7
0
        protected ReadOnlyUrl GetCandidateUrl(Guid candidateId, ProfessionalVisibility visibility, LocationReference location, Salary desiredSalary, string desiredJobTitle)
        {
            var sb = new StringBuilder();

            // Location.

            if (!string.IsNullOrEmpty(location.ToString()))
            {
                sb.Append(TextUtil.StripExtraWhiteSpace(TextUtil.StripToAlphaNumericAndWhiteSpace(location.ToString())).ToLower().Replace(' ', '-'));
            }
            else
            {
                if (location.IsCountry)
                {
                    sb.Append(location.Country.ToString().ToLower());
                }
                else
                {
                    sb.Append("-");
                }
            }

            // Salary.

            sb.Append("/");
            if (desiredSalary == null || !visibility.IsFlagSet(ProfessionalVisibility.Salary))
            {
                sb.Append("-");
            }
            else
            {
                desiredSalary = desiredSalary.ToRate(SalaryRate.Year);
                if (desiredSalary.LowerBound != null)
                {
                    if (desiredSalary.UpperBound != null)
                    {
                        sb.Append((int)(desiredSalary.LowerBound) / 1000).Append("k-").Append((int)(desiredSalary.UpperBound) / 1000).Append("k");
                    }
                    else
                    {
                        sb.Append((int)(desiredSalary.LowerBound) / 1000).Append("k-and-above");
                    }
                }
                else
                {
                    sb.Append("up-to-").Append((int)(desiredSalary.UpperBound) / 1000).Append("k");
                }
            }

            // Job title.

            sb.Append("/");
            if (string.IsNullOrEmpty(desiredJobTitle))
            {
                sb.Append("-");
            }
            else
            {
                sb.Append(TextUtil.StripExtraWhiteSpace(TextUtil.StripToAlphaNumericAndSpace(desiredJobTitle)).ToLower().Replace(' ', '-'));
            }

            // Id

            sb.Append("/");
            sb.Append(candidateId.ToString());

            return(new ReadOnlyApplicationUrl(_baseCandidateUrl, sb.ToString()));
        }
Пример #8
0
        private bool CanAccess(ProfessionalContactDegree contactDegree, ProfessionalVisibilitySettings visibilitySettings, ProfessionalVisibility visibility)
        {
            var contactVisibility = visibilitySettings == null
                ? GetPublicVisibility()
                : GetVisibility(contactDegree, visibilitySettings);

            return(contactVisibility.IsFlagSet(visibility));
        }
Пример #9
0
        /// <summary>
        /// Should be made protected some day ...
        /// </summary>
        public bool CanAccess(ProfessionalVisibility visibility)
        {
            // Check the effective contact degree against the settings.

            return(CanAccess(_effectiveContactDegree, visibility));
        }