private void ExpireAsync(ReservationExpiredMessage message) { var bus = BusPublisherStub.Create(); var service = new ReservationService(Db, bus); service.ExpireAsync(message).Wait(); }
public async Task ExpireAsync(ReservationExpiredMessage message) { var reservation = await _db.Reservations .Include(x => x.Loans) .FirstOrDefaultAsync(x => x.Id == message.ReservationId); reservation.Status = StatusReservation.Expired; _db.Update(reservation); await _db.SaveChangesAsync(); }
public async Task CheckDueAsync() { var date = DateTime.UtcNow.Date.AddDays(1).AddSeconds(-1); var expiredList = await _db.Reservations .Where(x => x.Loans.Any(l => l.DueDate.Date <= date)) .ToListAsync(); foreach (var item in expiredList) { var message = new ReservationExpiredMessage { ReservationId = item.Id }; await _bus.PublishAsync(QueueNames.Library, message); } }