aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-10 00:39:06 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-10 00:39:06 +0200
commit3f069bb4a5303b2c732ba1263229f62526acc693 (patch)
tree9426ff213bf43e8ed80f3c5265518a98d33cc63f /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics
parentd5827e26ff5ee1b0532530bce4da3533f71a63dd (diff)
downloadTango-3f069bb4a5303b2c732ba1263229f62526acc693.tar.gz
Tango-3f069bb4a5303b2c732ba1263229f62526acc693.zip
Refactored Object mapping extension methods !
Removed FK from JOB_RUNS => JOBS Added MACHINE_GUID to JOB_RUNS Refactored MS Statistics module for the new changes.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs45
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj1
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs23
3 files changed, 58 insertions, 11 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs
new file mode 100644
index 000000000..8e5642e3d
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs
@@ -0,0 +1,45 @@
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL;
+using Tango.BL.Entities;
+using Tango.Core.ExtensionMethods;
+
+namespace Tango.MachineStudio.Statistics.Models
+{
+ public class JobRunModel : JobRun
+ {
+ private static Dictionary<String, Machine> _machines = new Dictionary<string, Machine>();
+
+ public JobRunModel()
+ {
+
+ }
+
+ public JobRunModel(JobRun run)
+ {
+ run.MapPropertiesTo(this, MappingFlags.NoReferenceTypes);
+ }
+
+ public Task LoadMachine(ObservablesContext context)
+ {
+ return Task.Factory.StartNew(() =>
+ {
+ if (!_machines.ContainsKey(MachineGuid))
+ {
+ Machine = context.Machines.SingleOrDefault(x => x.Guid == MachineGuid);
+ _machines.Add(MachineGuid, Machine);
+ }
+ else
+ {
+ Machine = _machines[MachineGuid];
+ }
+ });
+ }
+
+ public Machine Machine { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj
index 243663c5a..36c371165 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Tango.MachineStudio.Statistics.csproj
@@ -73,6 +73,7 @@
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="Models\JobRunModel.cs" />
<Compile Include="Models\LabeledSeriesCollection.cs" />
<Compile Include="Tooltips\PieChartTooltipControl.xaml.cs">
<DependentUpon>PieChartTooltipControl.xaml</DependentUpon>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs
index ef9561d0b..dfbfe2648 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs
@@ -7,20 +7,20 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using Tango.BL;
-using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Core.Helpers;
using Tango.MachineStudio.Common;
using Tango.MachineStudio.Statistics.Models;
using System.Data.Entity;
using Tango.MachineStudio.Common.Notifications;
+using Tango.BL.Entities;
namespace Tango.MachineStudio.Statistics.ViewModels
{
public class MainViewVM : StudioViewModel
{
private ObservablesContext _context;
- private List<JobRun> _job_runs;
+ private List<JobRunModel> _job_runs;
private bool rendered;
private INotificationProvider _notification;
private bool _loaded;
@@ -74,7 +74,6 @@ namespace Tango.MachineStudio.Statistics.ViewModels
set { _maxDate = value; RaisePropertyChangedAuto(); }
}
-
public MainViewVM(INotificationProvider notificationProvider)
{
_notification = notificationProvider;
@@ -88,12 +87,12 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
- private List<JobRun> GetJobRunsByDateRange(DateTime startDate, DateTime endTime, JobRunStatus? status = null)
+ private List<JobRunModel> GetJobRunsByDateRange(DateTime startDate, DateTime endTime, JobRunStatus? status = null)
{
return _job_runs.Where(x => x.StartDate.ToLocalTime() >= startDate && x.StartDate.ToLocalTime() <= endTime && (status == null || x.JobRunStatus == status)).ToList();
}
- private List<JobRun> GetJobRunsByDate(DateTime date, JobRunStatus? status = null)
+ private List<JobRunModel> GetJobRunsByDate(DateTime date, JobRunStatus? status = null)
{
return _job_runs.Where(x => x.StartDate.ToLocalTime().Date == date.Date && (status == null || x.JobRunStatus == status)).ToList();
}
@@ -106,8 +105,6 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
}
-
-
public override async void OnNavigatedTo()
{
base.OnNavigatedTo();
@@ -124,7 +121,11 @@ namespace Tango.MachineStudio.Statistics.ViewModels
await Task.Factory.StartNew(() =>
{
_context = ObservablesContext.CreateDefault();
- _job_runs = _context.JobRuns.Include(x => x.Job).Include(x => x.Job.Machine).OrderBy(x => x.StartDate).ToList();
+ _job_runs = _context.JobRuns.OrderBy(x => x.StartDate).ToList().Select(x => new JobRunModel(x)).ToList();
+ foreach (var run in _job_runs)
+ {
+ run.LoadMachine(_context).GetAwaiter().GetResult();
+ }
});
if (_job_runs.Count > 0)
@@ -282,12 +283,12 @@ namespace Tango.MachineStudio.Statistics.ViewModels
private void GeneratePrintPerWeekChart()
{
- List<JobRun> range_job_runs = GetJobRunsByDateRange(StartDate, EndDate);
+ List<JobRunModel> range_job_runs = GetJobRunsByDateRange(StartDate, EndDate);
Dictionary<Machine, List<double>> weeks_print_avg = new Dictionary<Machine, List<double>>();
//Init machines weeks averages dictionary.
- foreach (var machine in range_job_runs.Select(x => x.Job.Machine).OrderBy(x => x.Name).DistinctBy(x => x.Guid))
+ foreach (var machine in range_job_runs.Select(x => x.Machine).OrderBy(x => x.Name).DistinctBy(x => x.Guid))
{
weeks_print_avg[machine] = new List<double>();
}
@@ -305,7 +306,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels
{
var week_job_runs = range_job_runs.Where(x => x.EndPosition > 10 && x.StartDate >= current_sunday && x.StartDate <= current_sunday.AddDays(7)).ToList();
- foreach (var machine_job_runs in week_job_runs.GroupBy(x => x.Job.Machine))
+ foreach (var machine_job_runs in week_job_runs.GroupBy(x => x.Machine))
{
weeks_print_avg[machine_job_runs.Key].Add(machine_job_runs.Select(x => x.EndPosition).Average());
}