using Microsoft.Extensions.DependencyInjection;
using xCommons.Extensions;
using xIdentityModels.Interfaces;
using xIdentityModels.Providers;
namespace xIdentityModels.Extensions {
public static class DIExtensions {
///
/// since registering IXUserRoleHelper need to add default instance if
/// user not provided we create this helper ...
///
///
public static void AddXUserRoleHandler (
this IServiceCollection services,
IXUserRoleHelper helper = null
) {
//
// Check if Provider is null ...
if (helper.IsNull ()) {
helper = services.GetRegisteredService ();
}
//
// check if Provider registered or not ...
if (helper.IsNull ()) {
//
// Create Default provider ...
services.AddSingleton (new XDefaultUserRoleHelper ());
} else {
//
// Register Given Helper ...
services.AddSingleton (helper);
}
}
}
}