1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-31 16:02:29 +01:00
Sonarr/Exceptron.Client/Configuration/ExceptronConfiguration.cs
2013-06-05 21:33:16 -07:00

75 lines
2.6 KiB
C#

using System.ComponentModel;
using System.Configuration;
using Exceptron.Client.Message;
namespace Exceptron.Client.Configuration
{
public class ExceptronConfiguration : ConfigurationSection
{
public ExceptronConfiguration()
{
Host = "http://exceptron.azurewebsites.net/api/v1/";
IncludeMachineName = true;
}
public static ExceptronConfiguration ReadConfig(string sectionName = "exceptron")
{
var configSection = ConfigurationManager.GetSection(sectionName);
if (configSection == null)
{
throw new ConfigurationErrorsException("ExceptronConfiguration section missing.");
}
return (ExceptronConfiguration)configSection;
}
/// <summary>
/// exceptron api address. Do not modify this property.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public string Host { get; set; }
/// <summary>
/// If ExceptronClinet should throw exceptions in case of an error. Default: <see cref="bool.False"/>
/// </summary>
/// <remarks>
/// Its recommended that this flag is set to True during development and <see cref="bool.False"/> in production systems.
/// If an exception is thrown while this flag is set to <see cref="bool.False"/> the thrown exception will be returned in <see cref="ExceptionResponse.Exception"/>
/// </remarks>
[ConfigurationProperty("throwExceptions", DefaultValue = false)]
public bool ThrowExceptions
{
get { return (bool)this["throwExceptions"]; }
set { this["throwExceptions"] = value; }
}
/// <summary>
/// The API of this application. Can find your API key in application settings page.
/// </summary>
[ConfigurationProperty("apiKey")]
public string ApiKey
{
get { return (string)this["apiKey"]; }
set { this["apiKey"] = value; }
}
/// <summary>
/// If the machine name should be attached to the exception report
/// </summary>
/// <remarks>Machine name can be usefull in webfarm enviroments when multiple
/// servers are running the same app and the issue could be machine specific.
/// Hoewever, You might want to disable this feature for privacy reasons.</remarks>
[ConfigurationProperty("includeMachineName", DefaultValue = true)]
public bool IncludeMachineName
{
get { return (bool)this["includeMachineName"]; }
set { this["includeMachineName"] = value; }
}
}
}