
dreveny
By: a guest on
Aug 9th, 2012 | syntax:
C# | size: 2.53 KB | hits: 10 | expires: Never
/// <summary>
/// Determine, which appointments will be moved.
/// </summary>
/// <param name="gap_out">Gap.</param>
/// <returns>List of appointments.</returns>
private List<Appointment> GetMovements(out TimeSpan gap_out)
{
gap_out = TimeSpan.FromMinutes(0);
if (mySameRoomApps.Count == 0)
{
return null;
}
if (myAppointment.BeginTime <= mySameRoomApps.First().BeginTime
&& myDragIndex != 0
&& myAppointment.BeginTime <= myDayView.BeginTime)
{
myDownOrUpValue = 1;
gap_out = mySameRoomApps.First().BeginTime - myDayView.BeginTime + TimeSpan.FromMinutes(1);
return mySameRoomApps.Take(myDragIndex).Where(app => !app.IsLocked).ToList();
}
if (myAppointment.BeginTime > mySameRoomApps.Last().BeginTime
&& myDragIndex != mySameRoomApps.Count)
{
myDownOrUpValue = -1;
gap_out = TimeSpan.FromMinutes(1);
return mySameRoomApps.Skip(myDragIndex).Where(app => !app.IsLocked).Take(mySameRoomApps.Count - myDragIndex).ToList();
}
for (int i = 1; i < mySameRoomApps.Count; i++)
{
myDownOrUpValue = myDragIndex - i;
if (myDownOrUpValue > 0)
{
if (myAppointment.BeginTime <= mySameRoomApps[i - 1].EndTime + TimeSpan.FromMinutes(5)
&& myAppointment.EndTime >= mySameRoomApps[i].BeginTime - TimeSpan.FromMinutes(5))
{
gap_out = mySameRoomApps[i].BeginTime - mySameRoomApps[i - 1].EndTime;
return mySameRoomApps.Skip(i).Take(Math.Abs(myDownOrUpValue)).Where(app => !app.IsLocked).ToList();
}
}
if (myDownOrUpValue < 0)
{
if (myAppointment.BeginTime <= mySameRoomApps[i - 1].EndTime - TimeSpan.FromMinutes(5)
&& myAppointment.EndTime >= mySameRoomApps[i].BeginTime - TimeSpan.FromMinutes(5))
{
gap_out = mySameRoomApps[i].BeginTime - mySameRoomApps[i - 1].EndTime;
return mySameRoomApps.Skip(myDragIndex).Take(Math.Abs(myDownOrUpValue)).Where(app => !app.IsLocked).ToList();
}
}
}
return null;
}