using System; using Microsoft.Extensions.DependencyInjection; using xExceptions.Constants; using xCommons.Extensions; using xStringService.Interfaces; using xStringService.Providers; namespace xStringService.DI { public static class XDIHelperExtension { /// /// Register Module Provided Service on DI /// /// /// public static void AddXStringService( this IServiceCollection services, ServiceLifetime lifeTime ) { AddStringService( services, lifeTime ); } // #region Private ... /// /// a LogTag for XStringService ... /// private static string XLogTag = "XStringService"; /// /// print a log in Console ... /// /// private static void Log(string message) { Console.WriteLine($"{XLogTag} => {message}"); } /// /// Register Push Service ... /// /// /// private static void AddStringService( IServiceCollection services, ServiceLifetime lifeTime ) { // var exception = XException.InvalidArgs.ToException(); ; // // Services ... var isServicesExists = !services.IsNull(); if (!isServicesExists) { // Log("AddStringService failed, services not provided ..."); throw exception; } // // Lifetime ... var isLifetimeExists = !lifeTime.IsNull(); if (!isLifetimeExists) { // Log("AddStringService failed, lifetime not provided ..."); throw exception; } // services.Add(new ServiceDescriptor(typeof(IXStringProvider), typeof(XStringProvider), lifeTime)); Log("AddStringService Succeed ..."); } #endregion } }