using Caliburn.Micro.Core;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Media;

namespace MECF.Framework.UI.Client.CenterViews.Maintain
{
    public class ItemEnablePage: PropertyChangedBase
    {
        private string type;

        public string Type
        {
            get { return type; }
            set
            {
                this.type = value;
                NotifyOfPropertyChange(nameof(Type));
                NotifyOfPropertyChange(nameof(DisplayName));
            }
        }

        private string name;

        public string Name
        {
            get { return name; }
            set
            {
                this.name = value;
                NotifyOfPropertyChange(nameof(Name));
                NotifyOfPropertyChange(nameof(DisplayName));
            }
        }

        private string module;

        public string Module
        {
            get { return module; }
            set
            {
                this.module = value;
                NotifyOfPropertyChange(nameof(Module));
                NotifyOfPropertyChange(nameof(DisplayName));
            }
        }
        
        public string DisplayName
        {
            get { return Type.Replace("Maintainer", "") + ":" + Name + (Module == "" ? "" : "-" + Module); }
        }

        private bool _value;
        public bool Value
        {
            get { return _value; }
            set
            {
                this._value = value;
                NotifyOfPropertyChange(nameof(Value));
            }
        }

        public bool EqualsTypeNameModule(string type, string name, string module)
        {
            return Type == type && Name == name && Module == module;
        }
    }
}
