Пример #1
0
        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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
            }
        }