Files
Umbraco-CMS/src/Umbraco.Core/Configuration/BaseRest/ExtensionElementCollection.cs
Per Ploug Krogslund 7440855c72 merge
2013-11-07 17:16:22 +01:00

71 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IExtensionsCollection : IEnumerable<IExtension>
{
IExtension this[string index] { get; }
}
[ConfigurationCollection(typeof(ExtensionElement), CollectionType = ConfigurationElementCollectionType.BasicMapAlternate)]
internal class ExtensionElementCollection : ConfigurationElementCollection, IExtensionsCollection
{
const string KeyExtension = "extension";
public override ConfigurationElementCollectionType CollectionType
{
get { return ConfigurationElementCollectionType.BasicMapAlternate; }
}
protected override string ElementName
{
get { return KeyExtension; }
}
protected override bool IsElementName(string elementName)
{
return elementName.Equals(KeyExtension, StringComparison.InvariantCultureIgnoreCase);
}
protected override ConfigurationElement CreateNewElement()
{
return new ExtensionElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ExtensionElement)element).Alias;
}
public override bool IsReadOnly()
{
return false;
}
new public ExtensionElement this[string index]
{
get { return (ExtensionElement)BaseGet(index); }
}
IEnumerator<IExtension> IEnumerable<IExtension>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IExtension;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
IExtension IExtensionsCollection.this[string index]
{
get { return this[index]; }
}
}
}