Example #1
0
 private void PutDownRestOfTheElements()
 {
     foreach (var el in ElementsUp.Skip(1).SkipLast(1).ToList())
     {
         NumbersWithConnections.Add(el.Item1, el.Item2);
     }
 }
Example #2
0
        private void RestoreTargetLinks()
        {
            var targetLinks    = NumbersWithConnections[TargetNumber];
            var lastUp         = ElementsUp.Last();
            var newTargetLinks = new Tuple <int, int>(targetLinks.Item1, lastUp.Item2.Item2);

            NumbersWithConnections[TargetNumber] = newTargetLinks;
        }
Example #3
0
        private void RestoreLinksOriginalDestinationNextElement(int originalNextDestination)
        {
            var lastUp = ElementsUp.Last();
            var destinationNextLinks = NumbersWithConnections[originalNextDestination];

            NumbersWithConnections.Add(lastUp.Item1, new Tuple <int, int>(lastUp.Item2.Item1, originalNextDestination));
            NumbersWithConnections[originalNextDestination] = new Tuple <int, int>(lastUp.Item1, destinationNextLinks.Item2);
        }
Example #4
0
        public void PutElementsUp()
        {
            var nextToPutUp = NumbersWithConnections[TargetNumber].Item2;

            for (int i = 0; i < skippedElements; i++)
            {
                var elementToPutUp = NumbersWithConnections[nextToPutUp];
                NumbersWithConnections.Remove(nextToPutUp);
                ElementsUp.Add(new Tuple <int, Tuple <int, int> >(nextToPutUp, elementToPutUp));
                nextToPutUp = elementToPutUp.Item2;
            }
        }
Example #5
0
        private void RestoreDestinationLinks()
        {
            var firstUp          = ElementsUp.First();
            var destinationLinks = NumbersWithConnections[DestinationNumber];

            if (ElementsUp.Last().Item1 == destinationLinks.Item1)
            {
                destinationLinks = new Tuple <int, int>(firstUp.Item2.Item1, destinationLinks.Item2);
            }

            NumbersWithConnections.Add(firstUp.Item1, new Tuple <int, int>(DestinationNumber, firstUp.Item2.Item2));
            NumbersWithConnections[DestinationNumber] = new Tuple <int, int>(destinationLinks.Item1, firstUp.Item1);
        }