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 DeleteSegmentsGroupCommand : IUndoRedoCommand { private JobModel _jobModel; private SegmentsGroupModel _segmentsGroup; private int _index; public DeleteSegmentsGroupCommand(JobModel job, SegmentsGroupModel segmentsGroup) { _jobModel = job; _segmentsGroup = segmentsGroup; _index = _jobModel.GroupingSegments.IndexOf(_segmentsGroup); } public void Execute() { _jobModel.SegmentsGroups.Remove(_segmentsGroup); foreach (var obj in _segmentsGroup.Segments) { _jobModel.Segments.Remove(obj); } _jobModel.GroupingSegments.Remove(_segmentsGroup); _jobModel.ArrangeSegmentsIndixes(); } public void UnExecute() { if (_jobModel.GroupingSegments.Count <= _index) _jobModel.GroupingSegments.Add(_segmentsGroup); else { _jobModel.GroupingSegments.Insert(_index, _segmentsGroup); } _jobModel.SegmentsGroups.Add(_segmentsGroup); foreach (var obj in _segmentsGroup.Segments) { _jobModel.Segments.Add(obj); } _jobModel.ArrangeSegmentsIndixes(); } } }