using System.Windows.Forms;
using System.Windows.Input;
using HeBianGu.Service.Mvc;
using Microsoft.WindowsAPICodePack.Dialogs;

namespace HeBianGu.App.Disk.ViewModel.Sync;

[ViewModel("Sync")]
public class SyncViewModel : MvcViewModelBase
{
    public ICommand OpenDirCommand { get; set; }

    protected override void Init()
    {
        /*LinkActions.Add(new LinkAction() { Action = "Space", Controller = "Loyout", DisplayName = "会话", Logo = "\xe613" });

        Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() =>
        {
            SelectLink = LinkActions[0];
        }));*/
    }

    public SyncViewModel()
    {
        OpenDirCommand = new RelayCommand(async () => await ButtonBase_OnClick());
    }

    protected override void Loaded(string args)
    {
    }

    public string _syncDir;

    public string SyncDir
    {
        get => _syncDir;
        set
        {
            _syncDir = value;
            RaisePropertyChanged();
        }
    }


    public class RelayCommand : ICommand
    {
        private readonly Action _execute;

        public RelayCommand(Action execute)
        {
            _execute = execute;
        }

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

        public event EventHandler CanExecuteChanged;

        public void Execute(object parameter)
        {
            _execute();
        }
    }


    private async Task ButtonBase_OnClick()
    {
        CommonOpenFileDialog dialog = new CommonOpenFileDialog
        {
            IsFolderPicker = true
        };

        if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
        {
            var folderPath = dialog.FileName; // 获取选中的文件夹路径
            //MessageBox.Show("folderPath " + folderPath);
            SyncDir = folderPath;
            // 处理选中的文件夹路径
        }
    }
}