|
|
|
@ -96,10 +96,36 @@ namespace MediaBrowser.Server.Implementations.Configuration
|
|
|
|
|
|
|
|
|
|
ValidateItemByNamePath(newConfig);
|
|
|
|
|
ValidateTranscodingTempPath(newConfig);
|
|
|
|
|
ValidatePathSubstitutions(newConfig);
|
|
|
|
|
|
|
|
|
|
base.ReplaceConfiguration(newConfiguration);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ValidatePathSubstitutions(ServerConfiguration newConfig)
|
|
|
|
|
{
|
|
|
|
|
foreach (var map in newConfig.PathSubstitutions)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(map.From) || string.IsNullOrWhiteSpace(map.To))
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException("Invalid path substitution");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!map.From.EndsWith(":\\") && !map.From.EndsWith(":/"))
|
|
|
|
|
{
|
|
|
|
|
map.From = map.From.TrimEnd('/').TrimEnd('\\');
|
|
|
|
|
}
|
|
|
|
|
if (!map.To.EndsWith(":\\") && !map.To.EndsWith(":/"))
|
|
|
|
|
{
|
|
|
|
|
map.To = map.To.TrimEnd('/').TrimEnd('\\');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(map.From) || string.IsNullOrWhiteSpace(map.To))
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentException("Invalid path substitution");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Replaces the item by name path.
|
|
|
|
|
/// </summary>
|
|
|
|
|