using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.PPC.Jobs.Models; namespace Tango.PPC.Jobs.UndoRedoCommands { class DuplicateSegmentCommand : IUndoRedoCommand { private JobModel _jobModel; private SegmentModel _copySegment; private int _index; public DuplicateSegmentCommand(JobModel job, SegmentModel segment) { _jobModel = job; _copySegment = segment.Clone(); _copySegment.SegmentIndex = segment.SegmentIndex + 1; _copySegment.RaiseSegmentBrushChanged(); _index = _jobModel.GroupingSegments.IndexOf(segment); } public void Execute() { if (_index == _jobModel.GroupingSegments.Count -1) _jobModel.GroupingSegments.Add(_copySegment); else { _jobModel.GroupingSegments.Insert(_index, _copySegment); } _jobModel.Segments.Add(_copySegment); _jobModel.ArrangeSegmentsIndixes(); } public void UnExecute() { _jobModel.Segments.Remove(_copySegment); _jobModel.GroupingSegments.Remove(_copySegment); _jobModel.ArrangeSegmentsIndixes(); } } }