using System; using System.Collections.Generic; using System.Configuration; using System.Text; namespace FoldingSpace.ScanAndTag.Configuration.WebServices { public class SourceTypeElement : ConfigurationElement { #region Fields private static ConfigurationProperty o_Type; private static ConfigurationPropertyCollection oc_Properties; #endregion #region Properties #region Type public string Type { get { return (string)this[o_Type]; } set { this[o_Type] = value; } } #endregion #region Properties /// /// Override the Properties collection and return our custom one. /// protected override ConfigurationPropertyCollection Properties { get { return oc_Properties; } } #endregion #endregion #region Constructor static SourceTypeElement() { o_Type = new ConfigurationProperty("type", typeof(string), string.Empty, ConfigurationPropertyOptions.IsRequired); oc_Properties = new ConfigurationPropertyCollection(); oc_Properties.Add(o_Type); } #endregion } } using System; using System.Collections.Generic; using System.Configuration; using System.Text; namespace FoldingSpace.ScanAndTag.Configuration.WebServices { [ConfigurationCollection(typeof(SourceTypeElement), AddItemName = "sourceType", CollectionType = ConfigurationElementCollectionType.BasicMap)] public class SourceTypeElementCollection : ConfigurationElementCollection { #region Fields private static ConfigurationPropertyCollection oc_Properties; #endregion #region Properties protected override ConfigurationPropertyCollection Properties { get { return oc_Properties; } } public override ConfigurationElementCollectionType CollectionType { get { return ConfigurationElementCollectionType.BasicMap; } } protected override string ElementName { get { return "sourceType"; } } #endregion #region Indexers public SourceTypeElement this[int index] { get { return (SourceTypeElement)base.BaseGet(index); } set { if (base.BaseGet(index) != null) base.BaseRemoveAt(index); base.BaseAdd(index, value); } } public SourceTypeElement this[string name] { get { return (SourceTypeElement)base.BaseGet(name); } } #endregion #region Constructors static SourceTypeElementCollection() { oc_Properties = new ConfigurationPropertyCollection(); } public SourceTypeElementCollection() { } #endregion #region Methods public void Add(SourceTypeElement item) { base.BaseAdd(item); } public void Remove(string name) { base.BaseRemove(name); } public void Remove(SourceTypeElement item) { base.BaseRemove(GetElementKey(item)); } public void Clear() { base.BaseClear(); } public void RemoveAt(int index) { base.BaseRemoveAt(index); } public string GetKey(int index) { return (string)base.BaseGetKey(index); } #endregion #region Overrides protected override ConfigurationElement CreateNewElement() { return new SourceTypeElement(); } protected override object GetElementKey(ConfigurationElement element) { return (element as SourceTypeElement).Type; } #endregion } } using System; using System.Collections.Generic; using System.Configuration; using System.Text; using FoldingSpace.ScanAndTag.Shared; namespace FoldingSpace.ScanAndTag.Configuration.WebServices { public class DocumentDestinationElement : ConfigurationElement { #region Fields private static ConfigurationProperty o_DisplayName; private static ConfigurationProperty o_Description; private static ConfigurationProperty o_Location; private static ConfigurationProperty o_Type; private static ConfigurationProperty o_ValidSourceTypes; private static ConfigurationProperty o_ValidDocumentTypes; private static ConfigurationProperty o_ValidUploaders; private static ConfigurationProperty o_ValidManagers; private static ConfigurationPropertyCollection oc_Properties; #endregion #region Properties #region DisplayName public string DisplayName { get { return (string)this[o_DisplayName]; } set { this[o_DisplayName] = value; } } #endregion #region Description public string Description { get { return (string)this[o_Description]; } set { this[o_Description] = value; } } #endregion #region Location public string Location { get { return (string)this[o_Location]; } set { this[o_Location] = value; } } #endregion #region Type public string Type { get { return (string)this[o_Type]; } set { this[o_Type] = value; } } #endregion #region ValidSourceTypes public SourceTypeElementCollection ValidSourceTypes { get { return (SourceTypeElementCollection)this[o_ValidSourceTypes]; } } #endregion #region ValidDocumentTypes public DocumentFilterElementCollection ValidDocumentTypes { get { return (DocumentFilterElementCollection)this[o_ValidDocumentTypes]; } } #endregion #region ValidUploaders public SecurityPrincipalElementCollection ValidUploaders { get { return (SecurityPrincipalElementCollection)this[o_ValidUploaders]; } } #endregion #region ValidManagers public SecurityPrincipalElementCollection ValidManagers { get { return (SecurityPrincipalElementCollection)this[o_ValidManagers]; } } #endregion #region Properties /// /// Override the Properties collection and return our custom one. /// protected override ConfigurationPropertyCollection Properties { get { return oc_Properties; } } #endregion #endregion #region Constructor static DocumentDestinationElement() { DocumentFilterElementCollection validDocumentTypesDefault = new DocumentFilterElementCollection(); DocumentFilterElement documentFilter = new DocumentFilterElement(); documentFilter.Type = DocumentFilterType.All; validDocumentTypesDefault.Add(documentFilter); o_DisplayName = new ConfigurationProperty("displayName", typeof(string), string.Empty, ConfigurationPropertyOptions.IsRequired); o_Description = new ConfigurationProperty("description", typeof(string), string.Empty, ConfigurationPropertyOptions.None); o_Location = new ConfigurationProperty("location", typeof(string), string.Empty, ConfigurationPropertyOptions.IsRequired); o_Type = new ConfigurationProperty("type", typeof(string), string.Empty, ConfigurationPropertyOptions.IsRequired); o_ValidSourceTypes = new ConfigurationProperty("validSourceTypes", typeof(SourceTypeElementCollection), null, ConfigurationPropertyOptions.IsRequired); o_ValidDocumentTypes = new ConfigurationProperty("validDocumentTypes", typeof(DocumentFilterElementCollection), validDocumentTypesDefault, ConfigurationPropertyOptions.None); o_ValidUploaders = new ConfigurationProperty("validUploaders", typeof(SecurityPrincipalElementCollection), null, ConfigurationPropertyOptions.IsRequired); o_ValidManagers = new ConfigurationProperty("validManagers", typeof(SecurityPrincipalElementCollection), new SecurityPrincipalElementCollection(), ConfigurationPropertyOptions.None); oc_Properties = new ConfigurationPropertyCollection(); oc_Properties.Add(o_DisplayName); oc_Properties.Add(o_Description); oc_Properties.Add(o_Location); oc_Properties.Add(o_Type); oc_Properties.Add(o_ValidSourceTypes); oc_Properties.Add(o_ValidDocumentTypes); oc_Properties.Add(o_ValidUploaders); oc_Properties.Add(o_ValidManagers); } #endregion } }