/// <summary> /// Configures a framework construction using the provided configuration /// </summary> /// <param name="construction">The construction to configure</param> /// <param name="configuration">The configuration</param> /// <returns></returns> public static FrameworkConstruction AddConfiguration(this FrameworkConstruction construction, IConfiguration configuration) { // Add specific configuration construction.UseConfiguration(configuration); // Add configuration to services construction.Services.AddSingleton(configuration); // Chain the construction return(construction); }
/// <summary> /// Injects all of the default services used by Quan.Framework for a quicker and cleaner setup /// </summary> /// <param name="construction"></param> /// <returns></returns> public static FrameworkConstruction AddDefaultServices(this FrameworkConstruction construction) { // Add exception handler construction.AddDefaultExceptionHandler(); // Add default logger construction.AddDefaultLogger(); // Chain the construction return(construction); }
/// <summary> /// Injects the default logger into the framework construction /// </summary> /// <param name="construction">The construction</param> /// <returns></returns> public static FrameworkConstruction AddDefaultLogger(this FrameworkConstruction construction) { // Add logging as default construction.Services.AddLogging(options => { // Setup loggers from configuration options.AddConfiguration(construction.Configuration.GetSection("Logging")); // Add console logger options.AddConsole(); // Add debug logger options.AddDebug(); }); // Adds a default logger so that we can get a non-generic logger // that will have the category name of "Quan" construction.Services.AddTransient(provider => provider.GetService <ILoggerFactory>().CreateLogger("Quan")); // Return the construction return(construction); }