aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2021-04-19 21:26:35 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2021-04-19 21:26:35 +0300
commit66d94b7757025c5d2f1a82428dc21f46efb604a6 (patch)
tree81d13066abfc2687fa4125caa758c8ad843821e6 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels
parent16b412099d4e8d4e64bc7ccc41b2ebfedde25f5c (diff)
downloadTango-66d94b7757025c5d2f1a82428dc21f46efb604a6.tar.gz
Tango-66d94b7757025c5d2f1a82428dc21f46efb604a6.zip
MS. Adding Organization & Site to Statistics.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs137
1 files changed, 129 insertions, 8 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
index e1876e87e..e0b644fcf 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
@@ -41,6 +41,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels
public class JobRunsViewVM : ViewModel
{
private INotificationProvider _notification;
+ private List<OrganisationToSiteModel> _organizations;
private List<Machine> _allMachines;
private List<User> _allUsers;
private List<RmlModel> _rmlsModels;
@@ -77,11 +78,72 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
}
- private SelectedObjectCollection<Machine> _selectedMachines;
+ private SelectedObjectCollection<OrganisationToSiteModel> _selectedOrganizations;
/// <summary>
/// Gets or sets the selected machines. Contains all available machines and selected machines. Binding to ComboBox Machines.
/// </summary>
- public SelectedObjectCollection<Machine> SelectedMachines
+ public SelectedObjectCollection<OrganisationToSiteModel> SelectedOrganizations
+ {
+ get { return _selectedOrganizations; }
+ set
+ {
+ _selectedOrganizations = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _IsEnabledSelectionSites;
+
+ public bool IsEnabledSelectionSites
+ {
+ get { return _IsEnabledSelectionSites; }
+ set { _IsEnabledSelectionSites = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _allSelectedSites;
+
+ public bool AllSelectedSites
+ {
+ get { return _allSelectedSites; }
+ set { _allSelectedSites = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+
+ private SelectedObjectCollection<SiteModel> _selectedSites;
+ /// <summary>
+ /// Gets or sets the selected machines. Contains all available machines and selected machines. Binding to ComboBox Machines.
+ /// </summary>
+ public SelectedObjectCollection<SiteModel> SelectedSites
+ {
+ get { return _selectedSites; }
+ set
+ {
+ _selectedSites = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _allSelectedMachines;
+
+ public bool AllSelectedMachines
+ {
+ get { return _allSelectedMachines; }
+ set
+ {
+ _allSelectedMachines = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private SelectedObjectCollection<MachineModel> _selectedMachines;
+ /// <summary>
+ /// Gets or sets the selected machines. Contains all available machines and selected machines. Binding to ComboBox Machines.
+ /// </summary>
+ public SelectedObjectCollection<MachineModel> SelectedMachines
{
get { return _selectedMachines; }
set
@@ -236,7 +298,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels
{
_notification = notificationProvider;
JobRuns = new ObservableCollection<JobRunModel>();
- LoadJobRunsCommand = new RelayCommand(async () => await LoadJobRuns(), () => IsFree);
+ LoadJobRunsCommand = new RelayCommand(async () => await LoadJobRuns(), () => IsFree && SelectedMachines.Source.Count >0);
ExportToExcelCommand = new RelayCommand(ExportToExcel, () => IsFree);
LengthUpperValue = 10000.0;
LengthLowerValue = 0.0;
@@ -325,12 +387,32 @@ namespace Tango.MachineStudio.Statistics.ViewModels
using (var db = ObservablesContext.CreateDefault())
{
+
+ _organizations = await db.Organizations.Select(x => new OrganisationToSiteModel(){ Name = x.Name, Guid = x.Guid}).ToListAsync();
+ foreach(var org in _organizations)
+ {
+ org.Sites = await db.Sites.Where(y => y.OrganizationGuid == org.Guid).Select(y => new SiteModel(){ Guid = y.Guid,Name = y.Name,}).ToListAsync();
+ foreach(var site in org.Sites)
+ {
+ site.Machines = await db.Machines.Where(x => x.SiteGuid == site.Guid).Select(y => new MachineModel(){Guid = y.Guid,Name = y.Name,SerialNumber = y.SerialNumber}).ToListAsync();
+ }
+ org.Machines = await db.Machines.Where(y=> y.OrganizationGuid == org.Guid).Select(y => new MachineModel() {Guid = y.Guid, Name = y.Name, SerialNumber = y.SerialNumber }).ToListAsync();
+ }
_allMachines = await db.Machines.ToListAsync();
_allUsers = await db.Users.Include(x => x.Contact).ToListAsync();
_rmlsModels = await db.Rmls.Select(x => new RmlModel() { Name = x.Name, Guid = x.Guid }).ToListAsync();
- SelectedMachines = new SelectedObjectCollection<Machine>(_allMachines.ToObservableCollection(), new ObservableCollection<Machine>());
- SelectedThreads = new SelectedObjectCollection<RmlModel>(_rmlsModels.ToObservableCollection(), new ObservableCollection<RmlModel>());
}
+ IsEnabledSelectionSites = false;
+ SelectedMachines = new SelectedObjectCollection<MachineModel>(new ObservableCollection<MachineModel>(), new ObservableCollection<MachineModel>());
+ SelectedThreads = new SelectedObjectCollection<RmlModel>(_rmlsModels.ToObservableCollection(), new ObservableCollection<RmlModel>());
+ SelectedSites = new SelectedObjectCollection<SiteModel>(new ObservableCollection<SiteModel>(), new ObservableCollection<SiteModel>());
+ SelectedOrganizations = new SelectedObjectCollection<OrganisationToSiteModel>(_organizations.ToObservableCollection(), _organizations.ToObservableCollection());
+ SelectedOrganizations.SelectionChanged -= OnSelectedOrganizationsChanged;
+ SelectedOrganizations.SelectionChanged += OnSelectedOrganizationsChanged;
+ SelectedSites.SelectionChanged -= OnSelectedSitesChanged;
+ SelectedSites.SelectionChanged += OnSelectedSitesChanged;
+ AllSelectedSites = true;
+ AllSelectedMachines = true;
}
catch (Exception ex)
{
@@ -343,6 +425,46 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
}
+
+ private void OnSelectedSitesChanged(object sender, EventArgs e)
+ {
+ if (SelectedSites.SynchedSource.Count > 0)
+ {
+ SelectedMachines = new SelectedObjectCollection<MachineModel>(SelectedSites.SynchedSource.SelectMany(x => x.Machines).ToObservableCollection(), SelectedSites.SynchedSource.SelectMany(x => x.Machines).ToObservableCollection());
+ }
+ else
+ {
+ SelectedMachines = new SelectedObjectCollection<MachineModel>(SelectedOrganizations.SynchedSource.SelectMany(x => x.Machines).ToObservableCollection(), SelectedOrganizations.SynchedSource.SelectMany(x => x.Machines).ToObservableCollection());
+ }
+ AllSelectedMachines = false;
+ AllSelectedMachines = true;
+ InvalidateRelayCommands();
+ }
+
+ private void OnSelectedOrganizationsChanged(object sender, EventArgs e)
+ {
+ if (SelectedOrganizations.SynchedSource.Count != SelectedOrganizations.Source.Count)
+ {
+ IsEnabledSelectionSites = true;
+ var selectedOrg = SelectedOrganizations.SynchedSource.ToList();
+ SelectedSites = new SelectedObjectCollection<SiteModel>(selectedOrg.SelectMany(x => x.Sites).ToObservableCollection(), selectedOrg.SelectMany(x => x.Sites).ToObservableCollection());
+ SelectedSites.SelectionChanged -= OnSelectedSitesChanged;
+ SelectedSites.SelectionChanged += OnSelectedSitesChanged;
+ SelectedMachines = new SelectedObjectCollection<MachineModel>(selectedOrg.SelectMany(x => x.Machines).ToObservableCollection(), selectedOrg.SelectMany(x => x.Machines).ToObservableCollection());
+ AllSelectedSites = false;
+ AllSelectedSites = true;
+ }
+ else
+ {
+ SelectedSites = new SelectedObjectCollection<SiteModel>(SelectedOrganizations.SynchedSource.SelectMany(x => x.Sites).ToObservableCollection(), SelectedOrganizations.SynchedSource.SelectMany(x => x.Sites).ToObservableCollection());
+ AllSelectedSites = false;
+ IsEnabledSelectionSites = false;
+ SelectedMachines = new SelectedObjectCollection<MachineModel>(SelectedOrganizations.SynchedSource.SelectMany(x => x.Machines).ToObservableCollection(), SelectedOrganizations.SynchedSource.SelectMany(x => x.Machines).ToObservableCollection());
+ }
+ AllSelectedMachines = false;
+ AllSelectedMachines = true;
+ InvalidateRelayCommands();
+ }
/// <summary>
/// Loads the job runs by filters.
@@ -354,7 +476,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels
try
{
IsFree = false;
-
+
using (var db = ObservablesContext.CreateDefault())
{
DateTime startUtc = new DateTime(StartSelectedDate.Year, StartSelectedDate.Month, StartSelectedDate.Day, 0, 0, 0).ToUniversalTime();
@@ -482,8 +604,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels
JobRuns = modelList.ToObservableCollection();
GenerateStatistics();
}
-
-
+
}
catch (Exception ex)
{