using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core.ExtensionMethods;
namespace Tango.BL.Entities
{
public partial class ProcessParametersTable : ProcessParametersTableBase
{
public event EventHandler DyeingSpeedMinInkUptakeChanged;
public const double DRYER_METERS_PER_CYCLE = 0.76;
public const double DRYER_TO_SPOOL_LENGTH_METERS = 0.9;
protected override void RaisePropertyChanged(string propName)
{
base.RaisePropertyChanged(propName);
if (propName == nameof(DyeingSpeed) || propName == nameof(MinInkUptake))
{
OnDyeingSpeedMinInkUptakeChanged();
}
}
protected virtual void OnDyeingSpeedMinInkUptakeChanged()
{
DyeingSpeedMinInkUptakeChanged?.Invoke(this, new EventArgs());
}
[NotMapped]
[JsonIgnore]
public double DryerBufferLengthMeters
{
get { return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS; }
}
///
/// Initializes a new instance of the class.
///
public ProcessParametersTable() : base()
{
}
public double GetAverageTemperature()
{
List heaters = new List();
heaters.Add(HeadZone1Temp);
heaters.Add(HeadZone2Temp);
heaters.Add(HeadZone3Temp);
heaters.Add(HeadZone4Temp);
heaters.Add(HeadZone5Temp);
heaters.Add(HeadZone6Temp);
heaters.Add(HeadZone7Temp);
heaters.Add(HeadZone8Temp);
heaters.Add(HeadZone9Temp);
heaters.Add(HeadZone10Temp);
heaters.Add(HeadZone11Temp);
heaters.Add(HeadZone12Temp);
heaters.Add(LBlowerTemp);
heaters.Add(RBlowerTemp);
return heaters.Average();
}
public PMR.Printing.ProcessParameters ToProcessParametersPMR()
{
PMR.Printing.ProcessParameters p = new PMR.Printing.ProcessParameters();
this.MapPrimitivesTo(p);
return p;
}
}
}