Skip to content

Instantly share code, notes, and snippets.

@Pownraj-2818
Created August 19, 2022 07:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Pownraj-2818/7433000d49aca790b3249db66115a6fb to your computer and use it in GitHub Desktop.
Save Pownraj-2818/7433000d49aca790b3249db66115a6fb to your computer and use it in GitHub Desktop.
private async Task<bool> IsSpaceAvailable(int spaceId, DateTime startTime, DateTime endTime)
{
var reservationList = await _context.Reservations
.Where(reservation =>
reservation.ReservedSpaceId == spaceId &&
!reservation.IsDeleted &&
!reservation.IsCancelled
)
.ToListAsync();
// 4 Edge cases
foreach (var reservation in reservationList)
{
if (endTime > reservation.StartsAt && endTime < reservation.EndsAt)
return false;
if (startTime <= reservation.StartsAt && endTime >= reservation.EndsAt)
return false;
if (startTime > reservation.StartsAt && startTime <= reservation.EndsAt)
return false;
if (startTime > reservation.StartsAt && endTime < reservation.EndsAt)
return false;
}
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment