using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core.Commands;
using Tango.Core.DI;
using Tango.FSE.Common;
using Tango.FSE.Common.Storage;
namespace Tango.FSE.Procedures.Dialogs
{
public class SaveFileDialogViewVM : FSEDialogViewVM
{
[TangoInject]
protected IStorageProvider StorageProvider { get; set; }
private String _selectedFile;
public String SelectedFile
{
get { return _selectedFile; }
set { _selectedFile = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
}
public String Extension { get; set; }
public String Message { get; set; }
public String DefaultFileName { get; set; }
public RelayCommand BrowseCommand { get; set; }
public SaveFileDialogViewVM(String message, String extension, String defaultFileName)
{
TangoIOC.Default.Inject(this);
AutoMode = true;
Message = message;
Extension = extension;
DefaultFileName = defaultFileName;
BrowseCommand = new RelayCommand(BrowseForFile);
}
private async void BrowseForFile()
{
var result = await StorageProvider.SaveFile("Select File Location", $"Files|{Extension}", DefaultFileName);
if (result.Confirmed)
{
SelectedFile = result.SelectedItem;
}
}
protected override bool CanOK()
{
return base.CanOK() && SelectedFile != null;
}
protected override void Cancel()
{
SelectedFile = null;
base.Cancel();
}
}
}