using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using System.Windows.Input;
using System;
using System.Windows;

namespace BBWY.Client.ViewModels
{
    public class BaseVM : ViewModelBase
    {
        public Guid VMId { get; set; }

        public ICommand LoadCommand { get; set; }

        public ICommand UnloadCommand { get; set; }

        public ICommand CopyTextCommand { get; set; }

        public BaseVM()
        {
            VMId = Guid.NewGuid();
            LoadCommand = new RelayCommand(Load);
            UnloadCommand = new RelayCommand(Unload);

            CopyTextCommand = new RelayCommand<object>(s => 
            {
                try
                {
                    Clipboard.SetText(s?.ToString());
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(ex);
                    Console.ResetColor();
                }
            });
        }

        public virtual void Refresh()
        {

        }

        protected virtual void Load()
        {

        }

        protected virtual void Unload()
        {

        }
    }
}