aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Dialogs/JobCreationViewVM.cs
blob: e2176c6afbf1111cfbfa54209c0a1f3b46505801 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Enumerations;
using Tango.SharedUI;

namespace Tango.PPC.Jobs.Dialogs
{
    /// <summary>
    /// Represents the a job type picker view model
    /// </summary>
    /// <seealso cref="Tango.SharedUI.DialogViewVM" />
    public class JobCreationViewVM : DialogViewVM
    {
        /// <summary>
        /// Gets or sets the supported job types.
        /// </summary>
        public List<JobTypes> SupportedJobTypes { get; set; }

        private JobTypes _selectedJobType;
        /// <summary>
        /// Gets or sets the type of the selected job.
        /// </summary>
        public JobTypes SelectedJobType
        {
            get { return _selectedJobType; }
            set
            {
                _selectedJobType = value;
                RaisePropertyChangedAuto();
            }
        }

        /// <summary>
        /// Gets or sets the supported color spaces.
        /// </summary>
        public List<ColorSpaces> SupportedColorSpaces { get; set; }

        private ColorSpaces _selectedColorSpace;
        /// <summary>
        /// Gets or sets the selected color space.
        /// </summary>
        public ColorSpaces SelectedColorSpace
        {
            get { return _selectedColorSpace; }
            set
            {
                _selectedColorSpace = value;
                RaisePropertyChangedAuto();
            }
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="JobCreationViewVM"/> class.
        /// </summary>
        /// <param name="supportedJobTypes">The supported job types.</param>
        /// <param name="supportedColorSpaces">The supported color spaces</param>
        public JobCreationViewVM(List<JobTypes> supportedJobTypes,List<ColorSpaces> supportedColorSpaces) : base()
        {
            SupportedJobTypes = supportedJobTypes;
            SupportedColorSpaces = supportedColorSpaces;
        }
    }
}
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.Name = "Job Runner"; 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; } } }