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); } } } }