public async Task <IActionResult> PutReservationMessage(int id, ReservationMessage reservationMessage)
        {
            if (id != reservationMessage.Id)
            {
                return(BadRequest());
            }

            _context.Entry(reservationMessage).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ReservationMessageExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 /// <summary>
 /// Map InputModel to QueueModel.
 /// </summary>
 /// <param name="reservation">Reservation input model to map.</param>
 /// <returns>ReservationQueueItem</returns>
 public static ReservationQueueItem MapToQueueItem(this ReservationMessage reservation) => new ReservationQueueItem
 {
     DateTimeOfReservation = reservation.DateTimeOfReservation,
     Email           = reservation.Email,
     FullName        = reservation.FullName,
     NumberOfPersons = reservation.NumberOfPersons,
     Tel             = reservation.Tel,
 };
        private ReservationDtoMessage RequestAsync(ReservationMessage message)
        {
            var bus = BusPublisherStub.Create();

            var service = new ReservationService(Db, bus);

            service.RequestAsync(message).Wait();

            return(bus.Dequeue <ReservationDtoMessage>(QueueNames.Library));
        }
Пример #4
0
        public async Task RequestAsync(ReservationMessage message)
        {
            var reservation = await _db.Reservations
                              .Include(x => x.Loans)
                              .Include(x => x.Member)
                              .FirstOrDefaultAsync(x => x.Number == message.Number);

            if (reservation == null)
            {
                reservation = new Reservation
                {
                    RequestDate = DateTime.UtcNow,
                    Status      = StatusReservation.Opened,
                    Number      = message.Number,
                    Member      = await _db.Members.FirstOrDefaultAsync(x => x.DocumentId == message.MemberId)
                };

                if (reservation.Member == null)
                {
                    reservation.Member = new Member
                    {
                        DocumentId = message.MemberId,
                        Name       = message.MemberName
                    };
                }

                reservation.Loans = new List <Loan>();

                foreach (var item in message.Items)
                {
                    var loan = await GetLoanAsync(_db, item, reservation.RequestDate);

                    reservation.Loans.Add(loan);
                }

                await _db.AddAsync(reservation);
            }
            else
            {
                reservation.Loans = new List <Loan>();

                foreach (var item in message.Items)
                {
                    var loan = await GetLoanAsync(_db, item, reservation.RequestDate);

                    reservation.Loans.Add(loan);
                }

                _db.Update(reservation);
            }

            await _db.SaveChangesAsync();

            await SendDtoAsync(reservation.Id);
        }
        public async Task <ActionResult <ReservationMessage> > PostReservationMessage(ReservationMessage reservationMessage)
        {
            _context.ReservationMessage.Add(reservationMessage);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetReservationMessage", new { id = reservationMessage.Id }, reservationMessage));
        }