Documentation Coverage Report
Current view: top level - Cqrs/Configuration - ConfigurationExtensions.cs Hit Total Coverage
Version: 2.2 Artefacts: 3 3 100.0 %
Date: 2018-08-07 15:04:50

          Line data    Source code
       1             : #region Copyright
       2             : // // -----------------------------------------------------------------------
       3             : // // <copyright company="Chinchilla Software Limited">
       4             : // //   Copyright Chinchilla Software Limited. All rights reserved.
       5             : // // </copyright>
       6             : // // -----------------------------------------------------------------------
       7             : #endregion
       8             : 
       9             : using System;
      10             : using cdmdotnet.Logging;
      11             : using System.Reflection;
      12             : using cdmdotnet.Logging.Configuration;
      13             : 
      14             : namespace Cqrs.Configuration
      15             : {
      16             :         /// <summary>
      17             :         /// A collection of extension methods for <see cref="IConfigurationManager"/>.
      18             :         /// </summary>
      19             :         public static class ConfigurationExtensions
      20           1 :         {
      21             :                 /// <summary>
      22             :                 /// Creates an instance of <see cref="ITelemetryHelper"/> if the value for <paramref name="configurationKey"/> is true.
      23             :                 /// </summary>
      24           1 :                 public static ITelemetryHelper CreateTelemetryHelper(this IConfigurationManager configurationManager, string configurationKey, IDependencyResolver dependencyResolver)
      25             :                 {
      26             :                         return CreateTelemetryHelper(configurationManager, configurationKey, dependencyResolver.Resolve<ICorrelationIdHelper>());
      27             :                 }
      28             : 
      29             :                 /// <summary>
      30             :                 /// Creates an instance of <see cref="ITelemetryHelper"/> if the value for <paramref name="configurationKey"/> is true.
      31             :                 /// </summary>
      32           1 :                 public static ITelemetryHelper CreateTelemetryHelper(this IConfigurationManager configurationManager, string configurationKey, ICorrelationIdHelper correlationIdHelper)
      33             :                 {
      34             :                         bool useApplicationInsightTelemetryHelper;
      35             :                         if (!bool.TryParse(configurationManager.GetSetting(configurationKey), out useApplicationInsightTelemetryHelper))
      36             :                                 useApplicationInsightTelemetryHelper = false;
      37             : 
      38             :                         if (useApplicationInsightTelemetryHelper)
      39             :                         {
      40             :                                 ITelemetryHelper helper;
      41             :                                 try
      42             :                                 {
      43             :                                         helper = (ITelemetryHelper)Activator.CreateInstanceFrom(string.Format("{0}\\cdmdotnet.Logging.Azure.ApplicationInsights.dll", AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory), "cdmdotnet.Logging.Azure.ApplicationInsights.TelemetryHelper", false, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.CreateInstance, null, new object[] { correlationIdHelper, DependencyResolver.Current.Resolve<ILoggerSettings>() }, null, null).Unwrap();
      44             :                                 }
      45             :                                 catch
      46             :                                 {
      47             :                                         helper = (ITelemetryHelper)Activator.CreateInstanceFrom(string.Format("{0}\\cdmdotnet.Logging.Azure.ApplicationInsights.dll", AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory), "cdmdotnet.Logging.Azure.ApplicationInsights.TelemetryHelper", false, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.CreateInstance, null, new object[] { correlationIdHelper }, null, null).Unwrap();
      48             :                                 }
      49             :                                 return helper;
      50             :                         }
      51             :                         return new NullTelemetryHelper();
      52             :                 }
      53             :         }
      54             : }

Generated by: LCOV version 1.12