Don't like ads? PRO users don't see any ads ;-)
Guest

dreveny

By: a guest on Aug 9th, 2012  |  syntax: C#  |  size: 2.53 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.  /// <summary>
  2.         /// Determine, which appointments will be moved.
  3.         /// </summary>
  4.         /// <param name="gap_out">Gap.</param>
  5.         /// <returns>List of appointments.</returns>
  6.         private List<Appointment> GetMovements(out TimeSpan gap_out)
  7.         {
  8.             gap_out = TimeSpan.FromMinutes(0);
  9.             if (mySameRoomApps.Count == 0)
  10.             {
  11.                 return null;
  12.             }
  13.             if (myAppointment.BeginTime <= mySameRoomApps.First().BeginTime
  14.                 && myDragIndex != 0
  15.                 && myAppointment.BeginTime <= myDayView.BeginTime)
  16.             {
  17.                 myDownOrUpValue = 1;
  18.                 gap_out = mySameRoomApps.First().BeginTime - myDayView.BeginTime + TimeSpan.FromMinutes(1);
  19.                 return mySameRoomApps.Take(myDragIndex).Where(app => !app.IsLocked).ToList();
  20.             }
  21.             if (myAppointment.BeginTime > mySameRoomApps.Last().BeginTime
  22.                 && myDragIndex != mySameRoomApps.Count)
  23.             {
  24.                 myDownOrUpValue = -1;
  25.                 gap_out = TimeSpan.FromMinutes(1);
  26.                 return mySameRoomApps.Skip(myDragIndex).Where(app => !app.IsLocked).Take(mySameRoomApps.Count - myDragIndex).ToList();
  27.             }
  28.  
  29.             for (int i = 1; i < mySameRoomApps.Count; i++)
  30.             {
  31.                 myDownOrUpValue = myDragIndex - i;
  32.                 if (myDownOrUpValue > 0)
  33.                 {
  34.                     if (myAppointment.BeginTime <= mySameRoomApps[i - 1].EndTime + TimeSpan.FromMinutes(5)
  35.                     && myAppointment.EndTime >= mySameRoomApps[i].BeginTime - TimeSpan.FromMinutes(5))
  36.                     {
  37.                         gap_out = mySameRoomApps[i].BeginTime - mySameRoomApps[i - 1].EndTime;
  38.                         return mySameRoomApps.Skip(i).Take(Math.Abs(myDownOrUpValue)).Where(app => !app.IsLocked).ToList();
  39.                     }
  40.                 }
  41.                 if (myDownOrUpValue < 0)
  42.                 {
  43.                     if (myAppointment.BeginTime <= mySameRoomApps[i - 1].EndTime - TimeSpan.FromMinutes(5)
  44.                         && myAppointment.EndTime >= mySameRoomApps[i].BeginTime - TimeSpan.FromMinutes(5))
  45.                     {
  46.                         gap_out = mySameRoomApps[i].BeginTime - mySameRoomApps[i - 1].EndTime;
  47.                         return mySameRoomApps.Skip(myDragIndex).Take(Math.Abs(myDownOrUpValue)).Where(app => !app.IsLocked).ToList();
  48.                     }
  49.                 }
  50.             }
  51.             return null;
  52.         }