aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/UndoRedoCommands/DeleteSegmentsGroupCommand.cs
blob: 83536825b94cf02d10cf23dafe31fc1242588946 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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;

        public DeleteSegmentsGroupCommand(JobModel job, SegmentsGroupModel segmentsGroup)
        {
            _jobModel = job;
            _segmentsGroup = segmentsGroup;
        }

        public void Execute()
        {
            foreach (var obj in _segmentsGroup.Segments)
            {
                _jobModel.Segments.Remove(obj);
            }
            _jobModel.GroupingSegments.Remove(_segmentsGroup);
            _jobModel.LoadGroupingSegments();
        }

        public void UnExecute()
        {
            int firstIndex = _segmentsGroup.FirstSegmentIndex;
            foreach (var obj in _segmentsGroup.Segments)
            {
                if (_jobModel.Segments.Count < firstIndex)
                    _jobModel.Segments.Add(obj);
                else
                {
                    _jobModel.Segments.Insert((firstIndex-1), obj);
                    firstIndex++;
                }
            }
            _jobModel.LoadGroupingSegments();
        }

    }
}