Exemplo n.º 1
0
        internal void ReserveSeatForUser(int userId, Seat seat)
        {
            if (HasEnded)
            {
                throw new InvalidOperationException("Seanse already ended");
            }

            if (Room.HasSeat(seat))
            {
                throw new InvalidOperationException("This room doesn't have such seat");
            }

            var existingSeat = SeatAssignments
                .FirstOrDefault(a => a.Row == seat.Row && a.SeatNumber == seat.SeatNumber);

            if (existingSeat != null)
            {
                throw new InvalidOperationException("Seat already taken");
            }

            SeatAssignments.Add(new SeatAssignment
            {
                SeanseId = SeanseId,
                Row = seat.Row,
                SeatNumber = seat.SeatNumber,
                UserId = userId
            });

            DomainEventBus.Current.Raise(new SeatAssignedToUser
            {
                SeanseId = SeanseId,
                UserId = userId,
                Seat = seat
            });
        }
 public string GetReservationHtmlMessage(Seanse seanse, Seat seat)
 {
     return string.Format("You have reserved seat <b>{0}</b> in row <b>{1}</b> for '{2}' at {3}",
         seat.SeatNumber,
         seat.Row,
         seanse.Movie.Title,
         seanse.StartTime);
 }
 public string GetReservationPlainTextMessage(Seanse seanse, Seat seat)
 {
     return string.Format("You have reserved seat {0} in row {1} for '{2}' at {3}",
         seat.SeatNumber,
         seat.Row,
         seanse.Movie.Title,
         seanse.StartTime);
 }
Exemplo n.º 4
0
 internal bool HasSeat(Seat seat)
 {
     return (SeatsPerRow < seat.SeatNumber || seat.SeatNumber <= 0) &&
         (RowsOfSeats < seat.Row || seat.Row <= 0);
 }