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 { public class RemoveSegmentCommand : IUndoRedoCommand { private JobModel _jobModel; private SegmentModel _removedSegment; private int _index; public RemoveSegmentCommand(JobModel job, SegmentModel segment) { _jobModel = job; _removedSegment = segment; _index = _jobModel.GroupingSegments.IndexOf(_removedSegment); } public void Execute() { _jobModel.Segments.Remove(_removedSegment); _jobModel.GroupingSegments.Remove(_removedSegment); _jobModel.ArrangeSegmentsIndixes(); } public void UnExecute() { _jobModel.Segments.Add(_removedSegment); if (_jobModel.GroupingSegments.Count <= _index) _jobModel.GroupingSegments.Add(_removedSegment); else { _jobModel.GroupingSegments.Insert(_index, _removedSegment); } _jobModel.ArrangeSegmentsIndixes(); } } }