using System.Collections; using System.Collections.Generic; using System.Linq; using WebsitePanel.WebDav.Core.Config.WebConfigSections; namespace WebsitePanel.WebDav.Core.Config.Entities { public class FileIconsDictionary : AbstractConfigCollection, IReadOnlyDictionary { private readonly IDictionary _fileIcons; public FileIconsDictionary() { DefaultPath = ConfigSection.FileIcons.DefaultPath; _fileIcons = ConfigSection.FileIcons.Cast().ToDictionary(x => x.Extension, y => y.Path); } public string DefaultPath { get; private set; } public IEnumerator> GetEnumerator() { return _fileIcons.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public int Count { get { return _fileIcons.Count; } } public bool ContainsKey(string extension) { return _fileIcons.ContainsKey(extension); } public bool TryGetValue(string extension, out string path) { return _fileIcons.TryGetValue(extension, out path); } public string this[string extension] { get { return ContainsKey(extension) ? _fileIcons[extension] : DefaultPath; } } public IEnumerable Keys { get { return _fileIcons.Keys; } } public IEnumerable Values { get { return _fileIcons.Values; } } } }