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.BL.Enumerations; using Tango.BL.ValueObjects; using Tango.PMR.Exports; namespace Tango.BL.Entities { public partial class JobRun : JobRunBase { private List _liquidQuantities; [NotMapped] [JsonIgnore] public JobRunStatus JobRunStatus { get { return (JobRunStatus)Status; } set { Status = (int)value; } } /// /// Gets or sets the job designation. /// [NotMapped] [JsonIgnore] public JobDesignations Designation { get { return (JobDesignations)JobDesignation; } set { JobDesignation = value.ToInt32(); RaisePropertyChangedAuto(); } } /// /// Gets or sets the job designation. /// [NotMapped] [JsonIgnore] public JobSource Source { get { return (JobSource)JobSource; } set { JobSource = value.ToInt32(); RaisePropertyChangedAuto(); } } [NotMapped] [JsonIgnore] public List LiquidQuantities { get { if (_liquidQuantities == null) { if (LiquidQuantityString != null) { try { _liquidQuantities = JsonConvert.DeserializeObject>(LiquidQuantityString); } catch { _liquidQuantities = new List(); } } else { _liquidQuantities = new List(); } } return _liquidQuantities; } set { _liquidQuantities = value; if (_liquidQuantities != null) { LiquidQuantityString = JsonConvert.SerializeObject(_liquidQuantities); } } } private List _liquidQuantitiesFast; [NotMapped] [JsonIgnore] public List LiquidQuantitiesFast { get { if (_liquidQuantitiesFast == null) { _liquidQuantitiesFast = new List(); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Cyan, Quantity = CyanQuantity }); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Magenta, Quantity = MagentaQuantity }); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Yellow, Quantity = YellowQuantity }); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Black, Quantity = BlackQuantity }); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.TransparentInk, Quantity = TransparentQuantity }); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Lubricant, Quantity = LubricantQuantity }); _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Cleaner, Quantity = CleanerQuantity }); } return _liquidQuantitiesFast; } } private JobFile _jobFile; [NotMapped] [JsonIgnore] public JobFile JobFile { get { if (_jobFile == null && JobString != null) { _jobFile = JobFile.Parser.ParseJson(JobString); } return _jobFile; } set { _jobFile = value; } } public Task CreateAssociatedJob() { return Job.FromJobFile(JobFile, MachineGuid, UserGuid); } protected override void RaisePropertyChanged(string propName) { base.RaisePropertyChanged(propName); if (propName == nameof(Status)) { RaisePropertyChanged(nameof(JobRunStatus)); } } /// /// Initializes a new instance of the class. /// public JobRun() : base() { } } }