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