diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-15 17:58:46 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-15 17:58:46 +0300 |
| commit | b8566b704e0804239bcb58dfb90b32e5334ce446 (patch) | |
| tree | be58a5f0c37690b07a48db45e9b0fc498c680b58 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs | |
| parent | b90acacb7dbef7d088d57a200cc4d71148bffd1e (diff) | |
| download | Tango-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.cs | 188 |
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; + } + } +} |
