using Ion.Sdk.DemoApp.Framework;
using Ion.Sdk.Ici;
using Ion.Sdk.Idi;
using System.Threading.Tasks;

namespace Ion.Sdk.DemoApp.Components
{

    public abstract class FileLoader<T> : BindableObject, IProgressReporter
    {
        protected ProgressIndicator Progress { get; private set; }
        public abstract string CommandName { get; }
        public abstract string OpenDialogFilter { get; }
        public abstract Task<T> Load(string filenameWithPath);
        public void Use(ProgressIndicator progress) => Progress = progress;
    }
}
