From a9c3aaed4d5c007f138bfc16f05aecdee73f1268 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 21 Nov 2018 16:24:37 +0200 Subject: Working on PPC Storage Provider !!! --- .../PPC/Tango.PPC.UI/ViewModels/StorageViewVM.cs | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/StorageViewVM.cs (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/StorageViewVM.cs') diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/StorageViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/StorageViewVM.cs new file mode 100644 index 000000000..5b5167393 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/StorageViewVM.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Commands; +using Tango.Explorer; +using Tango.PPC.Common; + +namespace Tango.PPC.UI.ViewModels +{ + public class StorageViewVM : PPCViewModel + { + private String _currentPath; + public String CurrentPath + { + get { return _currentPath; } + set { _currentPath = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand CloseCommand { get; set; } + + public RelayCommand FileSelectedCommand { get; set; } + + public StorageViewVM() + { + CloseCommand = new RelayCommand(Close); + FileSelectedCommand = new RelayCommand(OnFileSelected); + } + + public override void OnApplicationStarted() + { + + } + + public override void OnApplicationReady() + { + base.OnApplicationReady(); + + StorageProvider.StorageConnected += StorageProvider_StorageConnected; + StorageProvider.StorageDisconnected += StorageProvider_StorageDisconnected; + } + + public override void OnNavigatedTo() + { + base.OnNavigatedTo(); + + if (StorageProvider.Drive != null) + { + CurrentPath = StorageProvider.Drive.RootDirectory.FullName; + } + } + + private async void Close() + { + await NavigationManager.NavigateTo(Common.Navigation.NavigationView.LayoutView); + } + + /// + /// Handles the storage connected event. + /// + /// The sender. + /// The drive info. + private void StorageProvider_StorageConnected(object sender, System.IO.DriveInfo e) + { + InvokeUI(async () => + { + if (await NotificationProvider.ShowQuestion("Disk Inserted. Do you want to browse?")) + { + await NavigationManager.NavigateTo(Common.Navigation.NavigationView.StorageView); + } + }); + } + + /// + /// Handles the storage disconnected event. + /// + /// The sender. + /// The drive info. + private void StorageProvider_StorageDisconnected(object sender, System.IO.DriveInfo e) + { + InvokeUI(async () => + { + if (IsVisible) + { + await NavigationManager.NavigateTo(Common.Navigation.NavigationView.LayoutView); + } + }); + } + + private async void OnFileSelected(ExplorerFileItem fileItem) + { + await NavigationManager.NavigateTo(Common.Navigation.NavigationView.LayoutView); + await NotificationProvider.ShowInfo($"File Selected: {fileItem.Name}"); + } + } +} -- cgit v1.3.1