diff options
| author | Roy <Roy.mail.net@gmail.com> | 2022-11-04 21:35:07 +0200 |
|---|---|---|
| committer | Roy <Roy.mail.net@gmail.com> | 2022-11-04 21:35:07 +0200 |
| commit | 8431040bf909ba65d5ce242b5fd2cc91005ba679 (patch) | |
| tree | d6d60f676426d291cbb848b01a1245c1bc7f1348 /Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs | |
| parent | 7722d51930bcc1240b0c5e3ad54c9be7da73309d (diff) | |
| download | Tango-8431040bf909ba65d5ce242b5fd2cc91005ba679.tar.gz Tango-8431040bf909ba65d5ce242b5fd2cc91005ba679.zip | |
Statistics Provider & Service Communication.
Diffstat (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs index bfcc9cbd2..2a14b7de1 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs @@ -1,17 +1,74 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Enumerations; using Tango.FSE.Common; +using Tango.FSE.Common.AutoComplete; using Tango.FSE.Common.Navigation; +using Tango.PPC.Shared.Statistics; +using Tango.SharedUI.Components; using Tango.SharedUI.Helpers; namespace Tango.FSE.Statistics.ViewModels { public class MainViewVM : FSEViewModel { + private RequiredFiltersData _filtersData; + public RequiredFiltersData FiltersData + { + get { return _filtersData; } + set { _filtersData = value; RaisePropertyChangedAuto(); } + } + + private SelectedObjectCollection<JobRunStatus> _jobRunSelectedStatuses; + public SelectedObjectCollection<JobRunStatus> JobRunSelectedStatuses + { + get { return _jobRunSelectedStatuses; } + set { _jobRunSelectedStatuses = value; RaisePropertyChangedAuto(); } + } + + private SelectedObjectCollection<ThreadFilterData> _selectedThreads; + public SelectedObjectCollection<ThreadFilterData> SelectedThreads + { + get { return _selectedThreads; } + set { _selectedThreads = value; RaisePropertyChangedAuto(); } + } + + public AutoCompleteSource<String> JobsAutoCompleteProvider { get; set; } + + public MainViewVM() + { + JobRunSelectedStatuses = new SelectedObjectCollection<JobRunStatus>(new ObservableCollection<JobRunStatus>() + { + JobRunStatus.Aborted, + JobRunStatus.Completed, + JobRunStatus.Failed, + + }, new ObservableCollection<JobRunStatus>() + { + JobRunStatus.Aborted, + JobRunStatus.Completed, + JobRunStatus.Failed, + + }); + JobRunSelectedStatuses.SelectionChanged -= (x, y) => RaisePropertyChanged(nameof(JobRunSelectedStatuses)); + JobRunSelectedStatuses.SelectionChanged += (x, y) => RaisePropertyChanged(nameof(JobRunSelectedStatuses)); + + FiltersData = new RequiredFiltersData(); + + JobsAutoCompleteProvider = new AutoCompleteSource<string>(AutoCompleteJobs); + } + + private List<String> AutoCompleteJobs(string key) + { + key = key ?? String.Empty; + return FiltersData.Jobs.Where(x => x.ToLower().Contains(key.ToLower())).ToList(); + } + public override void OnApplicationStarted() { InvokeUI(() => @@ -28,5 +85,33 @@ namespace Tango.FSE.Statistics.ViewModels }); }); } + + public async override void OnNavigatedTo() + { + base.OnNavigatedTo(); + await LoadFiltersData(); + await LoadStatistics(); + } + + private async Task LoadFiltersData() + { + FiltersData = await StatisticsProvider.GetRequiredFiltersData(); + SelectedThreads = new SelectedObjectCollection<ThreadFilterData>(FiltersData.Rmls.ToObservableCollection(), new ObservableCollection<ThreadFilterData>()); + } + + private async Task LoadStatistics() + { + Filters filters = new Filters(); + filters.StartDateUTC = DateTime.Now.AddYears(-1).ToUniversalTime(); + filters.EndDateUTC = DateTime.Now.ToUniversalTime(); + filters.EndStatuses = JobRunSelectedStatuses.SynchedSource.Cast<int>().ToList(); + filters.IncludeHeadCleaning = false; + filters.JobName = null; + filters.MinLength = 0; + filters.MaxLength = 10000; + filters.RmlGuids = SelectedThreads.SynchedSource.Select(x => x.Guid).ToList(); + + var model = await StatisticsProvider.GetStatistics(filters); + } } } |
