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); }
public void ReserveSeatForUser(Guid 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 }); DomainEventBus.Current.Raise( new MovieWatched(userId, Movie.MovieId, Movie.IsPremiere, DomainTime.Current.Now)); }
internal bool HasSeat(Seat seat) { return (SeatsPerRow < seat.SeatNumber || seat.SeatNumber <= 0) && (RowsOfSeats < seat.Row || seat.Row <= 0); }