diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-04-19 21:26:35 +0300 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2021-04-19 21:26:35 +0300 |
| commit | 66d94b7757025c5d2f1a82428dc21f46efb604a6 (patch) | |
| tree | 81d13066abfc2687fa4125caa758c8ad843821e6 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs | |
| parent | 16b412099d4e8d4e64bc7ccc41b2ebfedde25f5c (diff) | |
| download | Tango-66d94b7757025c5d2f1a82428dc21f46efb604a6.tar.gz Tango-66d94b7757025c5d2f1a82428dc21f46efb604a6.zip | |
MS. Adding Organization & Site to Statistics.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs | 137 |
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) { |
