本文整理汇总了C#中Booking.GetDuration方法的典型用法代码示例。如果您正苦于以下问题:C# Booking.GetDuration方法的具体用法?C# Booking.GetDuration怎么用?C# Booking.GetDuration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Booking
的用法示例。
在下文中一共展示了Booking.GetDuration方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddBooking
public Booking AddBooking(Booking booking)
{
List<ITimeSlot> availableTimeSlots = GetAvailableTimeSlots(booking);
if (!availableTimeSlots.Any())
{
throw new ArgumentException("This is no place for booking");
}
ITimeSlot firstTimeSlot = availableTimeSlots
.FirstOrDefault(ts => ts.StartTime <= booking.DateTime.TimeOfDay
&& ts.StartTime.Add(ts.Duration) > booking.DateTime.TimeOfDay);
if (firstTimeSlot != null)
{
int amount = firstTimeSlot.GetSlotsAmount(booking.GetDuration());
for (int i = 0; i < amount; i++)
{
TimeSlots.Find(ts => ts.Number == firstTimeSlot.Number + i).IsAvailable = false;
}
Bookings.Add(booking);
return booking;
}
throw new ArgumentException("This is no place for booking");
}
示例2: GetAvailableTimeSlots
public List<ITimeSlot> GetAvailableTimeSlots(Booking booking)
{
List<ITimeSlot> timeSlots = new List<ITimeSlot>();
List<ITimeSlot> allAvailableTimeSlots = GetAllAvailableTimeSlots();
TimeSpan bookingDuration = booking.GetDuration().Duration();
if (allAvailableTimeSlots.Any())
{
int amount = allAvailableTimeSlots.First().GetSlotsAmount(bookingDuration);
for (int i = 0; i <= allAvailableTimeSlots.Count - amount; i++)
{
bool flag = true;
ITimeSlot timeSlot = allAvailableTimeSlots[i];
for (int j = 1; j < amount; j++)
{
if ( allAvailableTimeSlots[i+j].Number != timeSlot.Number + j)
{
flag = false;
break;
}
}
if (flag)
{
timeSlots.Add(timeSlot);
}
}
}
return timeSlots;
}
示例3: RemoveBooking
public Booking RemoveBooking(Booking booking)
{
if (booking.DateTime <= DateTime.Now.AddDays(1))
{
throw new OperationCanceledException("Can not remove booking 24 hours before booking time");
}
Bookings.Remove(booking);
ITimeSlot firstTimeSlot = TimeSlots
.FirstOrDefault(ts=>ts.StartTime == booking.DateTime.TimeOfDay);
if (firstTimeSlot !=null)
{
int amount = firstTimeSlot.GetSlotsAmount(booking.GetDuration());
for (int i = 0; i < amount; i++)
{
TimeSlots.Find(ts => ts.Number == firstTimeSlot.Number + i).IsAvailable = true;
}
return booking;
}
throw new Exception("Can not delete booking");
}