/// <summary> /// Constructor sets defaults for most items so the system can run with minimal configuration. /// /// Default parameters /// Record = false; /// RecordPath = Globals.GetPath(Path.GetTempPath(), "recordings", "shippingApi"); /// RecordOverwrite = false; /// Retries = 3; /// UserAgent = "Pitney Bowes CSharp SDK 1.0"; /// ThrowExceptions = false; /// /// Configuration is set to use the dictionary in the session object /// The configuration item "SANDBOX_ENDPOINT" is defined "https://api-sandbox.pitneybowes.com" /// The configuration item "PRODUCTION_ENDPOINT" is defined "https://api-sandbox.pitneybowes.com" /// /// Logging is disabled /// /// API secret is retrieved from the "ApiSecret" config item /// /// </summary> public Session() { Record = false; RecordPath = Globals.GetPath(Path.GetTempPath(), "recordings", "shippingApi"); RecordOverwrite = false; Retries = 3; _configs.Add("SANDBOX_ENDPOINT", "https://api-sandbox.pitneybowes.com"); _configs.Add("PRODUCTION_ENDPOINT", "https://api-sandbox.pitneybowes.com"); ThrowExceptions = false; GetConfigItem = (s) => { if (!_configs.ContainsKey(s)) { throw new ArgumentException(string.Format("Config string {0} not found", s)); } return(_configs[s]); }; AddConfigItem = (k, v) => { _configs.Add(k, v); }; LogWarning = (s) => { }; LogError = (s) => { }; LogConfigError = (s) => { }; LogDebug = (s) => { }; GetApiSecret = () => { return(new StringBuilder(GetConfigItem("ApiSecret"))); }; SerializationRegistry = new SerializationRegistry(); Counters = new Dictionary <string, Counters>(); _lock = new ReaderWriterLockSlim(); }
/// <summary> /// Constructor sets defaults for most items so the system can run with minimal configuration. /// /// Default parameters /// Record = false; /// RecordPath = Globals.GetPath(Path.GetTempPath(), "recordings", "shippingApi"); /// RecordOverwrite = false; /// Retries = 3; /// UserAgent = "Pitney Bowes CSharp SDK 1.0"; /// ThrowExceptions = false; /// /// Configuration is set to use the dictionary in the session object /// The configuration item "SANDBOX_ENDPOINT" is defined "https://api-sandbox.pitneybowes.com" /// The configuration item "PRODUCTION_ENDPOINT" is defined "https://api-sandbox.pitneybowes.com" /// /// Logging is disabled /// /// API secret is retrieved from the "ApiSecret" config item /// /// </summary> public Session() { _configs.Add("SANDBOX_ENDPOINT", "https://api-sandbox.pitneybowes.com"); _configs.Add("PRODUCTION_ENDPOINT", "https://api-sandbox.pitneybowes.com"); GetConfigItem = (s) => { if (!_configs.ContainsKey(s)) { throw new ArgumentException(string.Format("Config string {0} not found", s)); } return(_configs[s]); }; AddConfigItem = (k, v) => { _configs.Add(k, v); }; LogWarning = (s) => { }; LogError = (s) => { }; LogConfigError = (s) => { }; LogDebug = (s) => { }; GetApiSecret = () => { return(new StringBuilder(GetConfigItem("ApiSecret"))); }; SerializationRegistry = new SerializationRegistry(); Counters = new Dictionary <string, Counters>(); _lock = new ReaderWriterLockSlim(); }