using System; using System.Collections; using System.Collections.Generic; namespace ln.identities { public class AssignedRoles : IEnumerable { IIdentityProvider identityProvider; public IIdentityProvider IdentityProvider => identityProvider; Dictionary assignedRoles = new Dictionary(); public AssignedRoles(IIdentityProvider identityProvider) { this.identityProvider = identityProvider; } public AssignedRole this[Identity identity] { get { if (!assignedRoles.ContainsKey(identity.UniqueID)) { assignedRoles.Add(identity.UniqueID, new AssignedRole(identityProvider, identity)); } return assignedRoles[identity.UniqueID]; } } public IEnumerator GetEnumerator() { return assignedRoles.Values.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } }