using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using Tango.Core; using Tango.MachineStudio.RML.Models; using Tango.SharedUI; namespace Tango.MachineStudio.RML.ViewModels { public class RmlDeleteDialogViewVM : DialogViewVM { public enum RmlDeleteJobAction { Delete, Change } public class RmlDeleteJob : ExtendedObject { public Job Job { get; set; } public Machine Machine { get; set; } private RmlDeleteJobAction _action; public RmlDeleteJobAction Action { get { return _action; } set { _action = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(IsDelete)); } } public bool IsDelete { get { return Action == RmlDeleteJobAction.Delete; } } public RmlModel TargetRml { get; set; } public override string ToString() { return $"{Machine.SerialNumber} => {Job.Name} => {Action} {(Action == RmlDeleteJobAction.Change ? $" => {TargetRml.Name}" : String.Empty)}"; } } private List _jobsToDelete; private List _jobsActions; public List JobsActions { get { return _jobsActions; } set { _jobsActions = value; RaisePropertyChangedAuto(); } } public RmlModel Rml { get; set; } public List Rmls { get; set; } public List Actions { get; set; } public RmlDeleteDialogViewVM(RmlModel rml, List rmls, List jobsToDelete) { Rml = rml; Rmls = rmls.Where(x => x.Guid != rml.Guid).ToList(); _jobsToDelete = jobsToDelete; JobsActions = new List(); Actions = new List() { RmlDeleteJobAction.Delete, RmlDeleteJobAction.Change }; } public override void OnShow() { base.OnShow(); List list = new List(); foreach (var job in _jobsToDelete) { RmlDeleteJob deleteJob = new RmlDeleteJob(); deleteJob.Job = job; deleteJob.Action = RmlDeleteJobAction.Delete; deleteJob.Machine = job.Machine; deleteJob.TargetRml = Rmls.FirstOrDefault(x => x.Guid != Rml.Guid); list.Add(deleteJob); } JobsActions = list; } } }