using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
namespace Tango.MachineStudio.Statistics.Models
{
public class JobRunModel
{
public JobRun JobRun { get; set; }
public Machine Machine { get; set; }
public User User { get; set; }
public TimeSpan? UploadDuration { get; set; }
public TimeSpan? HeatingDuration { get; set; }
public RmlModel Rml { get; set; }
public bool IsEureka { get; set; }
public String Gen
{
get
{
return JobRun.MachineType == (int)MachineTypes.Eureka ? "X4" : "X1";
}
}
public double ActualStartPosition
{
get { return IsEureka ? JobRun.ActualStartPosition * 4 : JobRun.ActualStartPosition; }
}
public double ActualEndPosition
{
get
{
if (JobRun.ActualEndPosition > 0)
{
return IsEureka ? JobRun.ActualEndPosition * 4 : JobRun.ActualEndPosition;
}
else
{
return IsEureka ? JobRun.EndPosition * 4 : JobRun.EndPosition;
}
}
}
public double Distance
{
get
{
return ActualEndPosition - ActualStartPosition;
}
}
public double LogicalLengthMeters
{
get
{
return (IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength);
}
}
public double ActualLength
{
get { return LogicalLengthMeters * JobRun.NumberOfUnits; }
}
public void Init()
{
if (JobRun.HeatingStartDate != null)
{
UploadDuration = JobRun.HeatingStartDate - JobRun.StartDate;
}
if (JobRun.ActualStartDate != null && JobRun.HeatingStartDate != null)
{
HeatingDuration = JobRun.ActualStartDate - JobRun.HeatingStartDate;
}
if (JobRun.MachineType == (int)MachineTypes.Eureka)
{
JobRun.JobLogicalLength *= 4;
JobRun.JobLength *= 4;
JobRun.EndPosition *= 4;
IsEureka = true;
}
}
}
}