public void Handle(ReserveSeatCommand command) { Seanse seanse = _roomRepository.GetSeanse(command.SeanseId); User user = _userRepository.GetUser(command.UserId); var seat = new Seat(command.SeatRow, command.SeatNumber); seanse.ReserveSeatForUser(command.UserId, seat); FreeTicketLotery lottery = new FreeTicketLotery(_calculatorFactory); lottery.DrawFreeTicketForUser(user); }