aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-07-15 17:58:46 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-07-15 17:58:46 +0300
commitb8566b704e0804239bcb58dfb90b32e5334ce446 (patch)
treebe58a5f0c37690b07a48db45e9b0fc498c680b58 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs
parentb90acacb7dbef7d088d57a200cc4d71148bffd1e (diff)
downloadTango-b8566b704e0804239bcb58dfb90b32e5334ce446.tar.gz
Tango-b8566b704e0804239bcb58dfb90b32e5334ce446.zip
Implemented JobRunner on Tech Board !.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs188
1 files changed, 188 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs
new file mode 100644
index 000000000..562491630
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs
@@ -0,0 +1,188 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media;
+using System.Xml.Serialization;
+using Tango.BL.Entities;
+using Tango.BL.Enumerations;
+using Tango.Core.Commands;
+using Tango.Integration.Operation;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.MachineStudio.Technician.TechItems
+{
+ [TechItem(21)]
+ public class JobRunnerItem : TechItem
+ {
+ public event Action StartJob;
+ public event Action StopJob;
+
+ private Job _job;
+ /// <summary>
+ /// Gets or sets the job.
+ /// </summary>
+ [XmlIgnore]
+ public Job Job
+ {
+ get { return _job; }
+ set { _job = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Segment _segment;
+ /// <summary>
+ /// Gets or sets the segment.
+ /// </summary>
+ [XmlIgnore]
+ public Segment Segment
+ {
+ get { return _segment; }
+ set { _segment = value; RaisePropertyChangedAuto(); }
+ }
+
+ private BrushStop _brushStop;
+ /// <summary>
+ /// Gets or sets the brush stop.
+ /// </summary>
+ [XmlIgnore]
+ public BrushStop BrushStop
+ {
+ get { return _brushStop; }
+ set { _brushStop = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Machine _machine;
+ /// <summary>
+ /// Gets or sets the machine.
+ /// </summary>
+ [XmlIgnore]
+ public Machine Machine
+ {
+ get { return _machine; }
+ set { _machine = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); }
+ }
+
+ private ProcessParametersTable _processParameters;
+ /// <summary>
+ /// Gets or sets the process parameters.
+ /// </summary>
+ [XmlIgnore]
+ public ProcessParametersTable ProcessParameters
+ {
+ get { return _processParameters; }
+ set { _processParameters = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); }
+ }
+
+ private Rml _rml;
+ /// <summary>
+ /// Gets or sets the RML.
+ /// </summary>
+ [XmlIgnore]
+ public Rml Rml
+ {
+ get { return _rml; }
+ set { _rml = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); }
+ }
+
+ private RunningJobStatus _runningJobStatus;
+ /// <summary>
+ /// Gets or sets the running job status.
+ /// </summary>
+ [XmlIgnore]
+ public RunningJobStatus RunningJobStatus
+ {
+ get { return _runningJobStatus; }
+ set { _runningJobStatus = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _isJobStarted;
+ [XmlIgnore]
+ public bool IsJobStarted
+ {
+ get { return _isJobStarted; }
+ set { _isJobStarted = value; RaisePropertyChangedAuto(); }
+ }
+
+ /// <summary>
+ /// Gets or sets the start stop job command.
+ /// </summary>
+ [XmlIgnore]
+ public RelayCommand StartStopJobCommand { get; set; }
+
+ [XmlIgnore]
+ public JobHandler JobHandler { get; set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="JobRunnerItem"/> class.
+ /// </summary>
+ public JobRunnerItem() : base()
+ {
+ StartStopJobCommand = new RelayCommand(StartStopJob, (x) => Job != null && Segment != null && BrushStop != null && Machine != null && Rml != null && ProcessParameters != null);
+
+ Job = new Job();
+ Job.WindingMethod = Adapter.WindingMethods.FirstOrDefault();
+ Job.SpoolType = Adapter.SpoolTypes.FirstOrDefault();
+ Job.JobType = JobTypes.Sewing;
+
+ Segment = Job.AddSolidSegment();
+ BrushStop = Segment.AddBrushStop();
+ BrushStop.ColorSpace = Adapter.ColorSpaces.SingleOrDefault(x => x.Code == ColorSpaces.Volume.ToInt32());
+
+ Name = "Job Runner";
+ Description = "Job Runner";
+ Image = ResourceHelper.GetImageFromResources("Images/rgb-big.png");
+ }
+
+ private void StartStopJob()
+ {
+ if (!IsJobStarted)
+ {
+ IsJobStarted = true;
+ StartJob?.Invoke();
+ }
+ else
+ {
+ StopJob?.Invoke();
+ }
+ }
+
+ /// <summary>
+ /// Initializes the specified configuration.
+ /// </summary>
+ /// <param name="configuration">The configuration.</param>
+ /// <param name="rml">The RML.</param>
+ /// <param name="processParameters">The process parameters.</param>
+ public void Init()
+ {
+ if (Machine != null && Rml != null && ProcessParameters != null && BrushStop != null)
+ {
+ Job.Machine = Machine;
+ Job.Rml = Rml;
+ BrushStop.SetLiquidVolumes(Machine.Configuration, Rml, ProcessParameters);
+ }
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="JobRunnerItem"/> class.
+ /// </summary>
+ /// <param name="job">The job.</param>
+ public JobRunnerItem(Job job) : this()
+ {
+
+ }
+
+ /// <summary>
+ /// Clones this instance.
+ /// </summary>
+ /// <returns></returns>
+ public override TechItem Clone()
+ {
+ JobRunnerItem cloned = base.Clone() as JobRunnerItem;
+ cloned.Job = Job.Clone();
+ cloned.Segment = cloned.Job.Segments.First();
+ cloned.BrushStop = cloned.Job.Segments.First().BrushStops.First();
+ return cloned;
+ }
+ }
+}