private MetadataOptions GetMetadataOptions(Type type, ServerConfiguration config) { var options = config.MetadataOptions .FirstOrDefault(i => string.Equals(i.ItemType, type.Name, StringComparison.OrdinalIgnoreCase)); if (options == null) { var list = config.MetadataOptions.ToList(); options = new MetadataOptions { ItemType = type.Name }; list.Add(options); config.MetadataOptions = list.ToArray(); } return options; }
private void DisableMetadataService(Type type, ServerConfiguration config, string service) { var options = GetMetadataOptions(type, config); if (!options.DisabledMetadataSavers.Contains(service, StringComparer.OrdinalIgnoreCase)) { var list = options.DisabledMetadataSavers.ToList(); list.Add(service); options.DisabledMetadataSavers = list.ToArray(); } }
/// <summary> /// Validates the metadata path. /// </summary> /// <param name="newConfig">The new configuration.</param> /// <exception cref="System.IO.DirectoryNotFoundException"></exception> private void ValidateMetadataPath(ServerConfiguration newConfig) { var newPath = newConfig.MetadataPath; if (!string.IsNullOrWhiteSpace(newPath) && !string.Equals(Configuration.MetadataPath ?? string.Empty, newPath)) { // Validate if (!Directory.Exists(newPath)) { throw new DirectoryNotFoundException(string.Format("{0} does not exist.", newPath)); } } }
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"); } } }
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"); } } }
/// <summary> /// Replaces the item by name path. /// </summary> /// <param name="newConfig">The new configuration.</param> /// <exception cref="System.IO.DirectoryNotFoundException"></exception> private void ValidateItemByNamePath(ServerConfiguration newConfig) { var newPath = newConfig.ItemsByNamePath; if (!string.IsNullOrWhiteSpace(newPath) && !string.Equals(Configuration.ItemsByNamePath ?? string.Empty, newPath)) { // Validate if (!FileSystem.DirectoryExists(newPath)) { throw new DirectoryNotFoundException(string.Format("{0} does not exist.", newPath)); } EnsureWriteAccess(newPath); } }