diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-10-07 17:42:29 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-10-07 17:42:29 -0400 |
| commit | b1859d41e861630a95357bf21bb46af6c4fb5686 (patch) | |
| tree | b6309083d34e9be8bea03cae82ca6b6e5b35d7eb /MediaBrowser.Common.Implementations | |
| parent | b82254060d2fa33ffb2fd87ba31196d61a4940af (diff) | |
update collection menus
Diffstat (limited to 'MediaBrowser.Common.Implementations')
| -rw-r--r-- | MediaBrowser.Common.Implementations/Configuration/BaseConfigurationManager.cs | 15 | ||||
| -rw-r--r-- | MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | 25 |
2 files changed, 31 insertions, 9 deletions
diff --git a/MediaBrowser.Common.Implementations/Configuration/BaseConfigurationManager.cs b/MediaBrowser.Common.Implementations/Configuration/BaseConfigurationManager.cs index 1b9146644..0bcc5c711 100644 --- a/MediaBrowser.Common.Implementations/Configuration/BaseConfigurationManager.cs +++ b/MediaBrowser.Common.Implementations/Configuration/BaseConfigurationManager.cs @@ -9,6 +9,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; +using CommonIO; namespace MediaBrowser.Common.Implementations.Configuration { @@ -54,6 +55,7 @@ namespace MediaBrowser.Common.Implementations.Configuration /// </summary> /// <value>The application paths.</value> public IApplicationPaths CommonApplicationPaths { get; private set; } + public readonly IFileSystem FileSystem; /// <summary> /// The _configuration loaded @@ -96,10 +98,11 @@ namespace MediaBrowser.Common.Implementations.Configuration /// <param name="applicationPaths">The application paths.</param> /// <param name="logManager">The log manager.</param> /// <param name="xmlSerializer">The XML serializer.</param> - protected BaseConfigurationManager(IApplicationPaths applicationPaths, ILogManager logManager, IXmlSerializer xmlSerializer) + protected BaseConfigurationManager(IApplicationPaths applicationPaths, ILogManager logManager, IXmlSerializer xmlSerializer, IFileSystem fileSystem) { CommonApplicationPaths = applicationPaths; XmlSerializer = xmlSerializer; + FileSystem = fileSystem; Logger = logManager.GetLogger(GetType().Name); UpdateCachePath(); @@ -199,9 +202,19 @@ namespace MediaBrowser.Common.Implementations.Configuration { throw new DirectoryNotFoundException(string.Format("{0} does not exist.", newPath)); } + + EnsureWriteAccess(newPath); } } + protected void EnsureWriteAccess(string path) + { + var file = Path.Combine(path, Guid.NewGuid().ToString()); + + FileSystem.WriteAllText(file, string.Empty); + FileSystem.DeleteFile(file); + } + private readonly ConcurrentDictionary<string, object> _configurations = new ConcurrentDictionary<string, object>(); private string GetConfigurationFile(string key) diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 86aae959d..2578602a1 100644 --- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -465,7 +465,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager } catch (OperationCanceledException ex) { - var exception = GetCancellationException(options.Url, options.CancellationToken, ex); + var exception = GetCancellationException(options, options.CancellationToken, ex); var httpException = exception as HttpException; @@ -497,7 +497,10 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager /// <returns>HttpException.</returns> private HttpException GetException(WebException ex, HttpRequestOptions options) { - _logger.ErrorException("Error getting response from " + options.Url, ex); + if (options.LogErrors) + { + _logger.ErrorException("Error getting response from " + options.Url, ex); + } var exception = new HttpException(ex.Message, ex); @@ -710,10 +713,13 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager if (operationCanceledException != null) { - return GetCancellationException(options.Url, options.CancellationToken, operationCanceledException); + return GetCancellationException(options, options.CancellationToken, operationCanceledException); } - _logger.ErrorException("Error getting response from " + options.Url, ex); + if (options.LogErrors) + { + _logger.ErrorException("Error getting response from " + options.Url, ex); + } return ex; } @@ -785,18 +791,21 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager /// <summary> /// Throws the cancellation exception. /// </summary> - /// <param name="url">The URL.</param> + /// <param name="options">The options.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <param name="exception">The exception.</param> /// <returns>Exception.</returns> - private Exception GetCancellationException(string url, CancellationToken cancellationToken, OperationCanceledException exception) + private Exception GetCancellationException(HttpRequestOptions options, CancellationToken cancellationToken, OperationCanceledException exception) { // If the HttpClient's timeout is reached, it will cancel the Task internally if (!cancellationToken.IsCancellationRequested) { - var msg = string.Format("Connection to {0} timed out", url); + var msg = string.Format("Connection to {0} timed out", options.Url); - _logger.Error(msg); + if (options.LogErrors) + { + _logger.Error(msg); + } // Throw an HttpException so that the caller doesn't think it was cancelled by user code return new HttpException(msg, exception) |
