/// <summary>
        /// Deduces the rollbar configuration.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <returns></returns>
        public static IRollbarInfrastructureConfig DeduceRollbarConfig(IConfiguration configuration)
        {
            if (RollbarInfrastructure.Instance.Config?.RollbarLoggerConfig?.RollbarDestinationOptions?.AccessToken != null)
            {
                return(RollbarInfrastructure.Instance.Config);
            }

            // Here we assume that the Rollbar singleton was not explicitly preconfigured
            // anywhere in the code (Program.cs or Startup.cs),
            // so we are trying to configure it from IConfiguration:

            Assumption.AssertNotNull(configuration, nameof(configuration));

            const string defaultAccessToken           = "none";
            RollbarInfrastructureConfig rollbarConfig = new(defaultAccessToken);

            AppSettingsUtility.LoadAppSettings(rollbarConfig, configuration);

            if (rollbarConfig.RollbarLoggerConfig.RollbarDestinationOptions.AccessToken == defaultAccessToken)
            {
                const string error = "Rollbar.NET notifier is not configured properly. A valid access token needs to be specified.";
                throw new RollbarException(InternalRollbarError.ConfigurationError, error);
            }

            if (RollbarInfrastructure.Instance.IsInitialized)
            {
                RollbarInfrastructure.Instance.Config?.Reconfigure(rollbarConfig !);
            }
            else
            {
                RollbarInfrastructure.Instance.Init(rollbarConfig);
            }

            RollbarLocator.RollbarInstance
            .Configure(rollbarConfig.RollbarLoggerConfig);

            return(rollbarConfig);
        }
 /// <summary>
 /// Loads the application settings.
 /// </summary>
 /// <returns>Microsoft.Extensions.Configuration.IConfiguration.</returns>
 private static IConfiguration LoadAppSettings()
 {
     return(AppSettingsUtility.LoadAppSettings("appsettings.json"));
 }
 /// <summary>
 /// Loads the provided configuration object based on found configuration store (if any).
 /// </summary>
 /// <param name="config">The configuration.</param>
 /// <returns><c>true</c> if configuration was found, <c>false</c> otherwise.</returns>
 public bool Load(TelemetryConfig config)
 {
     return(AppSettingsUtility.LoadAppSettings(config));
 }
 /// <summary>
 /// Loads the provided configuration object based on found configuration store (if any).
 /// </summary>
 /// <param name="config">The configuration.</param>
 /// <returns><c>true</c> if configuration was found, <c>false</c> otherwise.</returns>
 public bool Load(RollbarConfig config)
 {
     return(AppSettingsUtility.LoadAppSettings(config));
 }
Esempio n. 5
0
 /// <summary>
 /// Loads the provided configuration object based on found configuration store (if any).
 /// </summary>
 /// <param name="config">The configuration.</param>
 /// <returns><c>true</c> if configuration was found, <c>false</c> otherwise.</returns>
 public bool Load(RollbarTelemetryOptions config)
 {
     return(AppSettingsUtility.LoadAppSettings(config));
 }
Esempio n. 6
0
 /// <summary>
 /// Loads the provided configuration object based on found configuration store (if any).
 /// </summary>
 /// <param name="config">The configuration.</param>
 /// <returns><c>true</c> if configuration was found, <c>false</c> otherwise.</returns>
 public bool Load(RollbarInfrastructureConfig config)
 {
     return(AppSettingsUtility.LoadAppSettings(config));
 }