aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-16 14:36:17 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-16 14:36:17 +0200
commite13899b90debdde8eceeea76c21a18ccc915d36c (patch)
treeebaa38019453d061720de57338069e5f5b49a59a /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs
parentadabe4e1b99bc57f0381fb0a5bb3192ac0fdff18 (diff)
parent1e563685f9c74fc7cfc204b714a1401002eba5fd (diff)
downloadTango-e13899b90debdde8eceeea76c21a18ccc915d36c.tar.gz
Tango-e13899b90debdde8eceeea76c21a18ccc915d36c.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
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.cs64
1 files changed, 48 insertions, 16 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 9bf69137d..ca40273f9 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
@@ -177,7 +177,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels
private Job _selectedJob;
/// <summary>
- /// Gets or sets the job. Used as Sele
+ /// Gets or sets the job.
/// </summary>
public Job SelectedJob
{
@@ -189,6 +189,9 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
}
+ /// <summary>
+ /// Gets or sets the statistics value collection. Class - container included calculated statistic values.
+ /// </summary>
public StatisticsValueCollection StatisticsValueCollection { get; set; }
#endregion
@@ -356,54 +359,76 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
}
+ #region GenerateS_StatisticsValueCollection
+
+ /// <summary>
+ /// Generates the statistics.
+ /// </summary>
protected void GenerateStatistics()
{
StatisticsValueCollection.Clean();
GenerateTotalRunsLength();
- GenerateRunsDuration();
- GenerateUploadDuration();
- GenerateHeatingDuration();
GenerateTotalThreadConsumption();
+ GenerateRunsDuration();
+ GenerateAverageUploadDuration();
+ GenerateAverageHeatingDuration();
GeneratePieCharts();
CreateThreadConsumptionPerThread();
GenerateAllLiquidQuantities();
}
-
+
+ /// <summary>
+ /// Generates the total length of the job runs.
+ /// </summary>
protected void GenerateTotalRunsLength()
{
double val = JobRuns.Where(z => z.JobRun.EndPosition > 0).Sum(x => x.JobRun.JobLength);
StatisticsValueCollection.AddStatisticsValue("Total Runs Length", val, " m");
}
+ /// <summary>
+ /// Generates the duration and average of the job runs.
+ /// </summary>
protected void GenerateRunsDuration()
{
var selection = JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.JobRun.EndDate != null && z.JobRun.ActualStartDate != null);
double val = selection.Sum(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate).Value.TotalHours);
StatisticsValueCollection.AddStatisticsValue("Total Runs Duration", val, " hours");
- double average = selection.Average(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate).Value.TotalHours);
- StatisticsValueCollection.AddStatisticsValue("Average Runs Duration", average, " hours");
+ double average = selection.Average(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate).Value.TotalMilliseconds);
+ StatisticsValueCollection.AddStatisticsValue("Average Runs Duration", Math.Max(TimeSpan.FromMilliseconds(average).TotalHours, 0), " hours");
}
- protected void GenerateUploadDuration()
+ /// <summary>
+ /// Generates the average upload duration of the job runs.
+ /// </summary>
+ protected void GenerateAverageUploadDuration()
{
- var val = (long)JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.UploadDuration != null).Average(x => x.UploadDuration.Value.TotalMilliseconds);
- StatisticsValueCollection.AddStatisticsValue("Average Upload Duration", Math.Max(TimeSpan.FromMilliseconds(val).TotalMinutes, 0), " minutes");
+ var average = (long)JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.UploadDuration != null).Average(x => x.UploadDuration.Value.TotalMilliseconds);
+ StatisticsValueCollection.AddStatisticsValue("Average Upload Duration", Math.Max(TimeSpan.FromMilliseconds(average).TotalMinutes, 0), " minutes");
}
- protected void GenerateHeatingDuration()
+ /// <summary>
+ /// Generates the average duration heating of the job runs.
+ /// </summary>
+ protected void GenerateAverageHeatingDuration()
{
- var val = JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.HeatingDuration != null).Average(x => x.HeatingDuration.Value.Ticks);
- TimeSpan ts = new TimeSpan(Convert.ToInt64(val));
- StatisticsValueCollection.AddStatisticsValue("Average Heating Duration", Math.Max(ts.TotalMinutes, 0), " minutes");
+ var average = JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.HeatingDuration != null && z.HeatingDuration.Value.Ticks > 0).Average(x => x.HeatingDuration.Value.TotalMilliseconds);
+ StatisticsValueCollection.AddStatisticsValue("Average Heating Duration", Math.Max(TimeSpan.FromMilliseconds(average).TotalMinutes, 0), " minutes");
}
+ /// <summary>
+ /// Generates the total thread consumption by EndPosition.
+ /// </summary>
protected void GenerateTotalThreadConsumption()
{
double val = JobRuns.Where(z => z.JobRun.EndPosition > 0).Sum(x => x.JobRun.EndPosition);
- StatisticsValueCollection.AddStatisticsValue("Total Thread Consumption", val, " m");
+ StatisticsValueCollection.AddStatisticsValue("Actual Total Runs Length", val, " m");
}
+ /// <summary>
+ /// Generates the pie charts in percentage: JobSource, JobRunStatus, Gradient.
+ /// </summary>
protected void GeneratePieCharts()
{
int PPCCount = JobRuns.Count(x => x.JobRun.Source == JobSource.Local);
@@ -421,6 +446,9 @@ namespace Tango.MachineStudio.Statistics.ViewModels
}
+ /// <summary>
+ /// Creates the thread consumption per thread.
+ /// </summary>
protected void CreateThreadConsumptionPerThread()
{
var temp = JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.Rml != null).GroupBy(x => x.Rml.Name);
@@ -428,6 +456,9 @@ namespace Tango.MachineStudio.Statistics.ViewModels
StatisticsValueCollection.CreateThreadConsumptionPerThread(result);
}
+ /// <summary>
+ /// Generates all liquid quantities.
+ /// </summary>
protected void GenerateAllLiquidQuantities()
{
var db_liquidQuantities = JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.JobRun.LiquidQuantities.Count > 0).Select(y => y.JobRun.LiquidQuantities).ToList();
@@ -435,13 +466,14 @@ namespace Tango.MachineStudio.Statistics.ViewModels
foreach (LiquidTypes ltype in (LiquidTypes[])Enum.GetValues(typeof(LiquidTypes)))
{
- var liquidQuantityByTypeList = db_liquidQuantities.Select(x => x.SingleOrDefault(y => y.LiquidType == ltype)).Where(x => x != null);
+ var liquidQuantityByTypeList = db_liquidQuantities.Select(x => x.FirstOrDefault(y => y.LiquidType == ltype)).Where(x => x != null);
var count = liquidQuantityByTypeList != null ? liquidQuantityByTypeList.Sum(x => x.Quantity) : 0;
JobRunLiquidQuantity lq = new JobRunLiquidQuantity() { LiquidType = ltype, Quantity = count };
allLiquidQuantities.Add(lq);
}
StatisticsValueCollection.GenerateStatisticsLiquidQuantity(allLiquidQuantities);
}
+ #endregion
}
}