@@ -184,7 +184,7 @@ public async Task<ActionResult<ReservationViewModel>> PutReservation([FromRoute]
184
184
return BadRequest ( "Company limit has been met for this day or there is not enough time at all." ) ;
185
185
186
186
// Check if there is enough time in that slot
187
- if ( ! IsEnoughTimeInSlot ( dbReservation . StartDate , dbReservation . TimeRequirement ) )
187
+ if ( ! await IsEnoughTimeInSlotAsync ( dbReservation . StartDate , dbReservation . TimeRequirement ) )
188
188
return BadRequest ( "There is not enough time in that slot." ) ;
189
189
}
190
190
#endregion
@@ -311,7 +311,7 @@ public async Task<ActionResult<ReservationViewModel>> PostReservation([FromBody]
311
311
return BadRequest ( "Company limit has been met for this day or there is not enough time at all." ) ;
312
312
313
313
// Check if there is enough time in that slot
314
- if ( ! IsEnoughTimeInSlot ( reservation . StartDate , reservation . TimeRequirement ) )
314
+ if ( ! await IsEnoughTimeInSlotAsync ( reservation . StartDate , reservation . TimeRequirement ) )
315
315
return BadRequest ( "There is not enough time in that slot." ) ;
316
316
#endregion
317
317
@@ -1134,12 +1134,10 @@ public async Task<NotAvailableDatesAndTimesViewModel> GetNotAvailableDatesAndTim
1134
1134
1135
1135
if ( ! notAvailableDates . Contains ( DateTime . Today ) )
1136
1136
{
1137
- // Cannot use SumAsync because of this EF issue:
1138
- // https://github.com/aspnet/EntityFrameworkCore/issues/12314
1139
- // Current milestone to be fixed is EF 2.1.3
1140
- var toBeDoneTodayTime = _context . Reservation
1137
+ var toBeDoneTodayTime = await _context . Reservation
1141
1138
. Where ( r => r . StartDate >= DateTime . Now && r . StartDate . Date == DateTime . Today )
1142
- . Sum ( r => r . TimeRequirement ) ;
1139
+ . SumAsync ( r => r . TimeRequirement ) ;
1140
+
1143
1141
if ( toBeDoneTodayTime >= GetRemainingSlotCapacityToday ( ) * _configuration . Reservation . TimeUnit ) notAvailableDates . Add ( DateTime . Today ) ;
1144
1142
}
1145
1143
#endregion
@@ -1581,36 +1579,28 @@ private async Task<bool> IsEnoughTimeOnDateAsync(DateTime date, int timeRequirem
1581
1579
{
1582
1580
var allCompanyLimit = await _context . Company . SumAsync ( c => c . DailyLimit ) ;
1583
1581
1584
- // Cannot use SumAsync because of this EF issue:
1585
- // https://github.com/aspnet/EntityFrameworkCore/issues/12314
1586
- // Current milestone to be fixed is EF 2.1.3
1587
- var reservedTimeOnDate = _context . Reservation
1582
+ var reservedTimeOnDate = await _context . Reservation
1588
1583
. Where ( r => r . StartDate . Date == date . Date )
1589
- . Sum ( r => r . TimeRequirement ) ;
1584
+ . SumAsync ( r => r . TimeRequirement ) ;
1590
1585
1591
1586
if ( reservedTimeOnDate + timeRequirement > allCompanyLimit * _configuration . Reservation . TimeUnit ) return false ;
1592
1587
}
1593
1588
else
1594
1589
{
1595
1590
1596
- // Cannot use SumAsync because of this EF issue:
1597
- // https://github.com/aspnet/EntityFrameworkCore/issues/12314
1598
- // Current milestone to be fixed is EF 2.1.3
1599
- var reservedTimeOnDate = _context . Reservation
1591
+ var reservedTimeOnDate = await _context . Reservation
1600
1592
. Where ( r => r . StartDate . Date == date . Date && r . User . Company == _user . Company )
1601
- . Sum ( r => r . TimeRequirement ) ;
1593
+ . SumAsync ( r => r . TimeRequirement ) ;
1602
1594
1603
1595
if ( reservedTimeOnDate + timeRequirement > userCompanyLimit * _configuration . Reservation . TimeUnit ) return false ;
1604
1596
}
1605
1597
1606
1598
if ( date . Date == DateTime . Today )
1607
1599
{
1608
- // Cannot use SumAsync because of this EF issue:
1609
- // https://github.com/aspnet/EntityFrameworkCore/issues/12314
1610
- // Current milestone to be fixed is EF 2.1.3
1611
- var toBeDoneTodayTime = _context . Reservation
1600
+ var toBeDoneTodayTime = await _context . Reservation
1612
1601
. Where ( r => r . StartDate >= DateTime . Now && r . StartDate . Date == DateTime . Today )
1613
- . Sum ( r => r . TimeRequirement ) ;
1602
+ . SumAsync ( r => r . TimeRequirement ) ;
1603
+
1614
1604
if ( toBeDoneTodayTime + timeRequirement > GetRemainingSlotCapacityToday ( ) * _configuration . Reservation . TimeUnit ) return false ;
1615
1605
}
1616
1606
@@ -1623,16 +1613,13 @@ private async Task<bool> IsEnoughTimeOnDateAsync(DateTime date, int timeRequirem
1623
1613
/// <param name="dateTime">Date and time of reservation</param>
1624
1614
/// <param name="timeRequirement">time requirement of the reservation in minutes</param>
1625
1615
/// <returns>true if there is enough time left or user is carwash admin</returns>
1626
- private bool IsEnoughTimeInSlot ( DateTime dateTime , int timeRequirement )
1616
+ private async Task < bool > IsEnoughTimeInSlotAsync ( DateTime dateTime , int timeRequirement )
1627
1617
{
1628
1618
if ( _user . IsCarwashAdmin ) return true ;
1629
1619
1630
- // Cannot use SumAsync because of this EF issue:
1631
- // https://github.com/aspnet/EntityFrameworkCore/issues/12314
1632
- // Current milestone to be fixed is EF 2.1.3
1633
- var reservedTimeInSlot = _context . Reservation
1620
+ var reservedTimeInSlot = await _context . Reservation
1634
1621
. Where ( r => r . StartDate == dateTime )
1635
- . Sum ( r => r . TimeRequirement ) ;
1622
+ . SumAsync ( r => r . TimeRequirement ) ;
1636
1623
1637
1624
return reservedTimeInSlot + timeRequirement <=
1638
1625
_configuration . Slots . Find ( s => s . StartTime == dateTime . Hour ) ? . Capacity * _configuration . Reservation . TimeUnit ;
0 commit comments