private void ExpireAsync(ReservationExpiredMessage message)
        {
            var bus = BusPublisherStub.Create();

            var service = new ReservationService(Db, bus);

            service.ExpireAsync(message).Wait();
        }
示例#2
0
        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();
        }
示例#3
0
        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);
            }
        }