1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System.Collections.Generic;
- using System.IO;
- using MediaBrowser.Common.Configuration;
- using MediaBrowser.Model.Configuration;
- using MediaBrowser.Model.IO;
- namespace MediaBrowser.MediaEncoding.Configuration
- {
- public class EncodingConfigurationFactory : IConfigurationFactory
- {
- private readonly IFileSystem _fileSystem;
- public EncodingConfigurationFactory(IFileSystem fileSystem)
- {
- _fileSystem = fileSystem;
- }
- public IEnumerable<ConfigurationStore> GetConfigurations()
- {
- return new[]
- {
- new EncodingConfigurationStore(_fileSystem)
- };
- }
- }
- public class EncodingConfigurationStore : ConfigurationStore, IValidatingConfiguration
- {
- private readonly IFileSystem _fileSystem;
- public EncodingConfigurationStore(IFileSystem fileSystem)
- {
- ConfigurationType = typeof(EncodingOptions);
- Key = "encoding";
- _fileSystem = fileSystem;
- }
- public void Validate(object oldConfig, object newConfig)
- {
- var oldEncodingConfig = (EncodingOptions)oldConfig;
- var newEncodingConfig = (EncodingOptions)newConfig;
- var newPath = newEncodingConfig.TranscodingTempPath;
- if (!string.IsNullOrWhiteSpace(newPath)
- && !string.Equals(oldEncodingConfig.TranscodingTempPath ?? string.Empty, newPath))
- {
- // Validate
- if (!Directory.Exists(newPath))
- {
- throw new FileNotFoundException(string.Format("{0} does not exist.", newPath));
- }
- }
- }
- }
- }
|