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(); } } }