using System.Windows.Media;
using Filtration.ObjectModel.Enums;
using Filtration.ObjectModel.Extensions;

namespace Filtration.ObjectModel.BlockItemBaseTypes
{
    public class ActionBlockItem : BlockItemBase
    {
        private BlockAction _action;

        public ActionBlockItem(BlockAction action)
        {
            Action = action;
        }

        public BlockAction Action
        {
            get { return _action; }
            set
            {
                _action = value;
                OnPropertyChanged();
                OnPropertyChanged("SummaryText");
                OnPropertyChanged("SummaryBackgroundColor");
                OnPropertyChanged("SummaryTextColor");
            }
        }

        public override string OutputText => Action.GetAttributeDescription();

        public override string PrefixText => string.Empty;

        public override int MaximumAllowed => 1;

        public override string DisplayHeading => "Action";

        public override string SummaryText => Action == BlockAction.Show ? "Show" : "Hide";

        public override Color SummaryBackgroundColor => Action == BlockAction.Show ? Colors.LimeGreen : Colors.OrangeRed;

        public override Color SummaryTextColor => Action == BlockAction.Show ? Colors.Black : Colors.White;

        public override int SortOrder => 0;

        public void ToggleAction()
        {
            Action = Action == BlockAction.Show ? BlockAction.Hide : BlockAction.Show;
        }
    }
}