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 enum OffsetType{ Left, Middle, Right}; public class ChangeOffsetCommand : IUndoRedoCommand { private SegmentModel _segment; private double _oldValue; private double _newValue; private OffsetType _type; public ChangeOffsetCommand(SegmentModel segment, double oldvalue, double newValue, OffsetType type) { _segment = segment; _oldValue = oldvalue; _newValue = newValue; _type = type; } public void Execute() { if (_segment == null) return; switch (_type) { case OffsetType.Left: { _segment.LeftOffset = _newValue; break; } case OffsetType.Middle: { _segment.MiddleOffset = _newValue; break; } case OffsetType.Right: { _segment.RightOffset = _newValue; break; } default: break; } } public void UnExecute() { if (_segment == null) return; switch (_type) { case OffsetType.Left: { _segment.LeftOffset = _oldValue; break; } case OffsetType.Middle: { _segment.MiddleOffset = _oldValue; break; } case OffsetType.Right: { _segment.RightOffset = _oldValue; break; } default: break; } } } }