public void ShiftWindowDown()
 {
     if (VisibleWindow.TryShiftDown())
     {
         if (_chain.Last.IsLowerHalf(_chain.Last))
         {
             _chain.LoadNextPage();
         }
     }
     else
     {
         if (_chain.IsLowerLimit)
         {
             CarrierFactory.SetBumperCounterDirection(this);
         }
         else
         {
             CarrierFactory.Suspend();
         }
     }
 }
 public void ShiftWindowUp()
 {
     if (VisibleWindow.TryShiftUp())
     {
         if (_chain.First.IsUpperHalf(_chain.First))
         {
             _chain.LoadPreviousPage();
         }
     }
     else
     {
         if (_chain.IsUpperLimit)
         {
             CarrierFactory.SetBumperCoDirection(this);
         }
         else
         {
             CarrierFactory.Suspend();
         }
     }
 }