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 UnGroupSegmentsCommand : IUndoRedoCommand { private JobModel _jobModel; private SegmentsGroupModel _segmentsGroupModel; private int _index; public UnGroupSegmentsCommand(JobModel jobModel, SegmentsGroupModel segmentsGroup) { _jobModel = jobModel; _segmentsGroupModel = segmentsGroup; _index = _jobModel.GroupingSegments.IndexOf(_segmentsGroupModel); } public void Execute() { int index = _index; foreach( var segment in _segmentsGroupModel.Segments) { segment.SegmentsGroupModel = null; _jobModel.GroupingSegments.Insert(index++, segment); } _jobModel.SegmentsGroups.Remove(_segmentsGroupModel); _jobModel.GroupingSegments.Remove(_segmentsGroupModel); _jobModel.ArrangeSegmentsIndixes(); } public void UnExecute() { _jobModel.SegmentsGroups.Add(_segmentsGroupModel); foreach (var segment in _segmentsGroupModel.Segments) { segment.SegmentsGroupModel = _segmentsGroupModel; _jobModel.GroupingSegments.Remove(segment); } if (_jobModel.GroupingSegments.Count <= _index) _jobModel.GroupingSegments.Add(_segmentsGroupModel); else { _jobModel.GroupingSegments.Insert(_index, _segmentsGroupModel); } _jobModel.ArrangeSegmentsIndixes(); } } }