aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorRoy <Roy.mail.net@gmail.com>2022-11-04 21:35:07 +0200
committerRoy <Roy.mail.net@gmail.com>2022-11-04 21:35:07 +0200
commit8431040bf909ba65d5ce242b5fd2cc91005ba679 (patch)
treed6d60f676426d291cbb848b01a1245c1bc7f1348 /Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
parent7722d51930bcc1240b0c5e3ad54c9be7da73309d (diff)
downloadTango-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.cs85
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);
+ }
}
}