public int GetCount(IEnumerable <Guid> ids, PersonalContactDegree degree) { return((from v in _views where ids.Contains(v.Key) && v.Value.ActualContactDegree == degree select v.Key).Count()); }
private void ResetFlag(PersonalContactDegree degree, PersonalVisibility flag) { switch (degree) { case PersonalContactDegree.Self: break; case PersonalContactDegree.FirstDegree: _firstDegreeVisibility = _firstDegreeVisibility.ResetFlag(flag); break; case PersonalContactDegree.SecondDegree: _secondDegreeVisibility = _secondDegreeVisibility.ResetFlag(flag); break; case PersonalContactDegree.Public: _publicVisibility = _publicVisibility.ResetFlag(flag); return; default: return; } ResetFlag(degree + 1, flag); }
private static PersonalVisibility GetVisibility(PersonalContactDegree contactDegree, PersonalVisibilitySettings visibilitySettings) { switch (contactDegree) { case PersonalContactDegree.Self: case PersonalContactDegree.Representee: // A representative of a representee can always see everything of that representee. return(PersonalVisibility.All); case PersonalContactDegree.Representative: // A representee can always see the name of their representative. return(visibilitySettings.FirstDegreeVisibility | PersonalVisibility.Name); case PersonalContactDegree.FirstDegree: return(visibilitySettings.FirstDegreeVisibility); case PersonalContactDegree.SecondDegree: return(visibilitySettings.SecondDegreeVisibility); case PersonalContactDegree.Public: return(visibilitySettings.PublicVisibility); default: return(visibilitySettings.PublicVisibility & PersonalVisibilitySettings.Anonymous); } }
private void LoadFormData() { Member member = LoggedInMember; foreach (VisibilityCheckBoxRow row in Rows) { PersonalContactDegree level = PersonalContactDegree.Self; var viewer = new PersonalView(member, PersonalContactDegree.FirstDegree, PersonalContactDegree.FirstDegree); if (viewer.CanAccess(row.ContactAccessFlag)) { level++; viewer = new PersonalView(member, PersonalContactDegree.SecondDegree, PersonalContactDegree.SecondDegree); if (viewer.CanAccess(row.ContactAccessFlag)) { level++; viewer = new PersonalView(member, PersonalContactDegree.Public, PersonalContactDegree.Public); if (viewer.CanAccess(row.ContactAccessFlag)) { level++; } } } row.ContactDegree = level; } }
private static PersonalVisibility GetAnonymousVisibility(PersonalContactDegree contactDegree) { switch (contactDegree) { case PersonalContactDegree.Self: return(PersonalVisibility.All); default: return(PersonalVisibilitySettings.InvisiblePublic); } }
public void Set(PersonalContactDegree degree, PersonalVisibility flag) { // Make sure the flag is set for all lower degrees. SetFlag(degree, flag); // Make sure it is not set for all higher degrees. if (degree < PersonalContactDegree.Public) { ResetFlag(degree + 1, flag); } }
public static string GetRepresentativeDescriptionText(this PersonalContactDegree contactDegree) { switch (contactDegree) { case PersonalContactDegree.Representative: return("My nominated representative"); case PersonalContactDegree.Representee: return("Represented by me"); default: return(null); } }
private void SetPageVisibility(PersonalContactDegree effectiveOwnerDegreeFromViewer, PersonalContactDegree actualOwnerDegreeFromViewer) { var view = new PersonalView(OwnerOfFriends, effectiveOwnerDegreeFromViewer, actualOwnerDegreeFromViewer); imgPhoto.Width = Constants.ThumbnailMaxSize.Width; imgPhoto.Height = Constants.ThumbnailMaxSize.Height; imgPhoto.ImageUrl = view.GetPhotoUrlOrDefault().ToString(); var canSendInvites = view.CanAccess(PersonalVisibility.SendInvites); phAddToFriends.Visible = canSendInvites && actualOwnerDegreeFromViewer != PersonalContactDegree.Self && actualOwnerDegreeFromViewer != PersonalContactDegree.FirstDegree; }
public PersonalView(Member member, PersonalContactDegree effectiveContactDegree, PersonalContactDegree actualContactDegree) { _member = member; _effectiveContactDegree = effectiveContactDegree; _actualContactDegree = actualContactDegree; }
internal static bool CanAccess(PersonalContactDegree contactDegree, PersonalVisibilitySettings visibilitySettings, PersonalVisibility visibility) { var contactVisibility = visibilitySettings == null?GetAnonymousVisibility(contactDegree) : GetVisibility(contactDegree, visibilitySettings); return(contactVisibility.IsFlagSet(visibility)); }