aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-10-07 17:42:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-10-07 17:42:29 -0400
commitb1859d41e861630a95357bf21bb46af6c4fb5686 (patch)
treeb6309083d34e9be8bea03cae82ca6b6e5b35d7eb /MediaBrowser.Common.Implementations
parentb82254060d2fa33ffb2fd87ba31196d61a4940af (diff)
update collection menus
Diffstat (limited to 'MediaBrowser.Common.Implementations')
-rw-r--r--MediaBrowser.Common.Implementations/Configuration/BaseConfigurationManager.cs15
-rw-r--r--MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs25
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)