private async Task SendDtoAsync(Guid id) { var message = new ReservationDtoMessage { ReservationId = id }; await _bus.PublishAsync(QueueNames.Library, message); }
private ReservationDto CreateReservationAsync(ReservationDtoMessage message) { var bus = BusPublisherStub.Create(); var service = new ProcessDtoService(Db, bus); service.CreateReservationAsync(message).Wait(); return(bus.DequeueExchange <ReservationDto>(ExchangeNames.DTO)); }
public async Task CreateReservationAsync(ReservationDtoMessage message) { var reservation = await _db.Reservations .Include(x => x.Loans) .ThenInclude(x => x.Book) .Include(x => x.Loans) .ThenInclude(x => x.Copy) .Include(x => x.Member) .FirstOrDefaultAsync(x => x.Id == message.ReservationId); var dto = new ReservationDto(); dto.Id = reservation.Id; dto.Number = reservation.Number; dto.RequestDate = reservation.RequestDate; dto.Status = reservation.Status; dto.Member = new ReservationDto.MemberDetail() { Id = reservation.Member.Id, DocumentId = reservation.Member.DocumentId, Name = reservation.Member.Name }; dto.Loans = new List <ReservationDto.LoanDetail>(); foreach (var item in reservation.Loans) { var loanDto = new ReservationDto.LoanDetail() { Id = item.Id, CopyNumber = item.Copy.Number, Title = item.Book.Title, DueDate = item.DueDate, ReturnDate = item.ReturnDate }; dto.Loans.Add(loanDto); } await _bus.PublishAsync(ExchangeNames.DTO, dto); }
protected override async Task InternalRunAsync(IServiceProvider provider) { List <Reservation> orders = null; using (var context = provider.GetService <DbLibrary>()) { orders = await context.Reservations.ToListAsync(); } foreach (var order in orders) { var message = new ReservationDtoMessage() { ReservationId = order.Id }; var bus = provider.GetService <IBusPublisher>(); await bus.PublishAsync(QueueNames.Library, message); } }