using System; using System.Collections.Generic; using System.IO; 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.Notifications; using Tango.FSE.Common.Storage; using Tango.FSE.Statistics.Models; using Tango.Settings; using static Tango.FSE.Common.FSESettings; namespace Tango.FSE.Statistics.Dialogs { public class JobRunStreamingViewVM : FSEDialogViewVM { public StatisticsStreamingConfiguration Config { get; set; } public RelayCommand BrowseCsvReportsFolderCommand { get; set; } [TangoInject] private IStorageProvider StorageProvider { get; set; } [TangoInject] private INotificationProvider NotificationProvider { get; set; } public JobRunStreamingViewVM() { CanCancel = false; OKText = "CLOSE"; TangoIOC.Default.Inject(this); Config = SettingsManager.Default.GetOrCreate().StatisticsStreamingConfig; BrowseCsvReportsFolderCommand = new RelayCommand(BrowseCsvReportsFolder); } protected override void Accept() { if (Config.EnableCsvReports && (!Config.CsvReportsFolder.IsNotNullOrEmpty() || !Directory.Exists(Config.CsvReportsFolder))) { NotificationProvider.ShowError("Please specify a valid reports folder path."); return; } base.Accept(); } private async void BrowseCsvReportsFolder() { var result = await StorageProvider.SelectFolder("Select CSV Reports Folder", Config.CsvReportsFolder); if (result) { Config.CsvReportsFolder = result.SelectedItem; RaisePropertyChanged(nameof(Config)); } } } }