Untitled
unknown
csharp
2 years ago
1.6 kB
9
Indexable
internal class AllSecurityProviders
{
private readonly IADSecurityProviderBll adSecurityProviderBll;
private readonly IAPISecurityProviderBll apiSecurityProviderBll;
private readonly ISocialProviderBll socialProviderBll;
private readonly object activeProviderLock = new object();
private ISecurityProvider activeSecurityProvider;
public AllSecurityProviders(IADSecurityProviderBll adSecurityProviderBll, IAPISecurityProviderBll apiSecurityProviderBll, ISocialProviderBll socialProviderBll)
{
this.adSecurityProviderBll = adSecurityProviderBll;
this.apiSecurityProviderBll = apiSecurityProviderBll;
this.socialProviderBll = socialProviderBll;
}
public List<GroupDto> GetGroupsByProviderID(int userId, int providerType)
{
SwitchActiveProviderById(providerType);
return activeSecurityProvider.GetGroupsByUserId(userId);
}
public void SwitchActiveProviderById(int providerType)
{
lock (activeProviderLock)
{
switch (providerType)
{
case 1:
activeSecurityProvider = adSecurityProviderBll;
break;
case 2:
activeSecurityProvider = apiSecurityProviderBll;
break;
default:
throw new ArgumentException("SOMETHING WENT WRONG MY DUDE");
}
}
}
}Editor is loading...