Spring – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Collections.Generic;
using System.Xml.Schema;
using System.Xml.Serialization;
using SpringCombos.Properties;

namespace SpringCombos
{
    [Serializable, XmlRoot(ElementName = "SpringCombos"), XmlInclude(typeof(Combo)),
     XmlInclude(typeof(MouseCombo)), XmlInclude(typeof(KeyboardCombo)), XmlInclude(typeof(PauseCombo))]
    public class Combos
    {
#region Public Enums, Properties and Fields

        [XmlAttribute("noNamespaceSchemaLocation", Namespace = XmlSchema.InstanceNamespace)]
        public string NoNamespaceSchemaLocation
        {
            get => "SpringCombos.xsd";
            set { }
        }

        [XmlElement(ElementName = "SpringCombo")]
        public List<Combo> Combo { get; set; } = new List<Combo>();

        [XmlElement(ElementName = "SpringComboRepeat")]
        public int ComboRepeat
        {
            get => _springComboRepeat;
            set => _springComboRepeat = value;
        }

#endregion

#region Private Delegates, Events, Enums, Properties, Indexers and Fields

        private int _springComboRepeat;

#endregion

#region Constructors, Destructors and Finalizers

        [UsedImplicitly]
        public Combos()
        {
        }

        public Combos(IEnumerable<Combo> sequence)
        {
            Combo.AddRange(sequence);
        }

        public Combos(IEnumerable<Combo> sequence, int chargeRepeat) : this(sequence) =>
            _springComboRepeat = chargeRepeat;

#endregion
    }
}