public static IServiceCollection PrintServiceAddedToConsole(this IServiceCollection services, [NotNull] ElectPrintRegisteredToConsoleOptions configure) { return(services.PrintServiceAddedToConsole(_ => { _.ListAssemblyName = configure.ListAssemblyName; _.IsMinimalDisplay = configure.IsMinimalDisplay; _.PrimaryColor = configure.PrimaryColor; _.SecondaryColor = configure.SecondaryColor; _.SortAscBy = configure.SortAscBy; })); }
public static IServiceCollection PrintServiceAddedToConsole(this IServiceCollection services, [NotNull] Action <ElectPrintRegisteredToConsoleOptions> configure) { services.Configure(configure); ElectPrintRegisteredToConsoleOptions options = configure.GetValue(); var listServiceDescriptors = services.ToList(); listServiceDescriptors = listServiceDescriptors.Where(x => options.ListAssemblyName.Any(y => x.ServiceType.FullName.Contains(y))).ToList(); if (options.SortAscBy == ElectDIPrintSortBy.Service) { listServiceDescriptors = listServiceDescriptors.OrderBy(x => GetNormForServiceAdded(x.ServiceType.Name)).ToList(); } else if (options.SortAscBy == ElectDIPrintSortBy.Implementation) { listServiceDescriptors = listServiceDescriptors.OrderBy(x => GetNormForServiceAdded(x.ImplementationType?.Name)).ToList(); } else { listServiceDescriptors = listServiceDescriptors.OrderBy(x => GetNormForServiceAdded(x.Lifetime.ToString())).ToList(); } Console.ResetColor(); Console.WriteLine(); Console.ForegroundColor = options.PrimaryColor; Console.WriteLine($"Elect DI > Registered {listServiceDescriptors.Count} Services."); Console.WriteLine(); if (!listServiceDescriptors.Any()) { return(services); } if (options.IsMinimalDisplay) { PrintServiceAddedToConsoleMinimalDisplayFormat(listServiceDescriptors, options.SecondaryColor, options.PrimaryColor); } else { PrintServiceAddedToConsoleFullDisplayFormat(listServiceDescriptors, options.SecondaryColor, options.PrimaryColor); } Console.ResetColor(); Console.WriteLine(); return(services); }