private bool CanAccess(ProfessionalContactDegree contactDegree, ProfessionalVisibilitySettings visibilitySettings, ProfessionalVisibility visibility) { var contactVisibility = visibilitySettings == null ? GetPublicVisibility() : GetVisibility(contactDegree, visibilitySettings); return(contactVisibility.IsFlagSet(visibility)); }
public bool Equals(ProfessionalVisibilitySettings other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(Equals(other._employmentVisibility, _employmentVisibility) && Equals(other._publicVisibility, _publicVisibility)); }
private ProfessionalVisibility GetVisibility(ProfessionalContactDegree degree, ProfessionalVisibilitySettings visibilitySettings) { // If the user is not enabled then no-one else should have any visibility of them unless they have // applied for a job. // If they are not activated but have already been contacted, or they have applied for a job // then treat them as normal. switch (degree) { case ProfessionalContactDegree.Self: return(ProfessionalVisibility.All); case ProfessionalContactDegree.Public: return(!_member.IsEnabled || !_member.IsActivated ? ProfessionalVisibilitySettings.None : visibilitySettings.PublicVisibility); case ProfessionalContactDegree.Contacted: return(!_member.IsEnabled ? ProfessionalVisibilitySettings.None : visibilitySettings.EmploymentVisibility | Contacted); case ProfessionalContactDegree.Applicant: return(visibilitySettings.EmploymentVisibility | Applicant); default: return(!_member.IsEnabled || !_member.IsActivated ? ProfessionalVisibilitySettings.None : visibilitySettings.EmploymentVisibility& NotContacted); } }