Horizon – Rev 1

Subversion Repositories:
Rev:
using System.ComponentModel;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using TrackedFolders.Properties;

namespace TrackedFolders
{
    [XmlRoot(ElementName = "Folder")]
    public class Folder : INotifyPropertyChanged
    {
        #region Interface

        public event PropertyChangedEventHandler PropertyChanged;

        #endregion

        #region Private Methods

        [NotifyPropertyChangedInvocator]
        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        #endregion

        #region Public Enums, Properties and Fields

        [XmlIgnore]
        public Color Color { get; set; }

        public int SerializableColor
        {
            get => Color.ToArgb();
            set
            {
                switch (value)
                {
                    case 0:
                        Color = Color.Empty;
                        break;
                    default:
                        Color = Color.FromArgb(value);
                        break;
                }
            }
        }

        [XmlElement(ElementName = "Enable")]
        public bool Enable
        {
            get => _enable;
            set
            {
                if (value == _enable)
                {
                    return;
                }

                _enable = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Path")]
        public string Path
        {
            get => _path;
            set
            {
                if (value == _path)
                {
                    return;
                }

                _path = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Recursive")]
        public bool Recursive
        {
            get => _recursive;
            set
            {
                if (value == _recursive)
                {
                    return;
                }

                _recursive = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Delay")]
        public int Delay
        {
            get => _delay;
            set
            {
                if (value == _delay)
                {
                    return;
                }

                _delay = value;
                OnPropertyChanged();
            }
        }

        #endregion

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

        private int _delay = Constants.Delay;

        private string _path;

        private bool _recursive;

        private bool _enable;

        #endregion

        #region Constructors, Destructors and Finalizers

        [UsedImplicitly]
        public Folder()
        {
        }

        public Folder(string path, bool enable) : this()
        {
            Path = path;
            Enable = enable;
        }

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.