using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;

namespace FasdDesktopUi.Pages.DetailsPage.Commands
{
    public abstract class BaseCommand : ICommand
    {
        private bool _canExecute;
        private bool canExecute
        {
            get { return _canExecute; }
            set
            {
                _canExecute = value;
                CanExecuteChanged?.Invoke(this, null);
            }
        }

        public event EventHandler CanExecuteChanged;

        public virtual bool CanExecute(object parameter)
        {
            canExecute = true;
            return canExecute;
        }

        public abstract void Execute(object parameter);
    }
}
