using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Logging; using Tango.PPC.Jobs.Models; namespace Tango.PPC.Jobs.UndoRedoCommands { public class CopySegmentCommand : IUndoRedoCommand { private JobModel _jobModel; public CopySegmentCommand(JobModel jobModel) { _jobModel = jobModel; } public void Execute() { List SegmentsToCopy = new List(_jobModel.SegmentsToCopy); SegmentsToCopy.Clear(); if (false == _jobModel.Segments.ToList().Any(x => x.IsSelected)) return; //LogManager.Log("Copy selected segments."); int indexToPasteCopySegments = -1; foreach (var segment in _jobModel.GroupingSegments.Where(i => i.IsSelected).ToList()) { //segment.IsSelected = false; SegmentsToCopy.Add(segment.Clone()); var index = _jobModel.GroupingSegments.ToList().IndexOf(segment); indexToPasteCopySegments = index > indexToPasteCopySegments? index: indexToPasteCopySegments; } _jobModel.SegmentsToCopy = SegmentsToCopy; _jobModel.IndexToPasteCopySegments = indexToPasteCopySegments; } public void UnExecute() { _jobModel.SegmentsToCopy= new List(); } } }