public EventDetailsModule(IGuestEventDetailsQueries <Guid> queries)
            : base("api/guest/{eventId}")
        {
            this.Before.AddItemToEndOfPipeline(ctx =>
            {
                _invite = (IIdentity)ctx.CurrentUser;
                return(null);
            });

            this.RequiresAuthentication();
            this.RequiresClaims("Guest");

            _queries = queries;

            Get["/guests-on-invite"] = _ => GetGuestsOnInvite();
            Get["/event-details"]    = p => GetEventDetails(p.eventId);
            Get["/featured-guests"]  = p => GetFeaturedGuests(p.eventId);
            Get["/venue-details"]    = p => GetVenueDetails(p.eventId);
            Get["/invite-type"]      = p => GetInviteType();
        }
        public GuestMessageBoard(IGuestMessageBoardQueries queries
                                 , IGuestMessageBoardCommands commands
                                 , IValidator <Message> messageValidator
                                 , IGuestEventDetailsQueries <Guid> guestQueries) : base("api/guest/{eventId}/messageboard")
        {
            this.RequiresAuthentication();
            this.RequiresClaims("Guest");

            _queries          = queries;
            _guestQueries     = guestQueries;
            _commands         = commands;
            _messageValidator = messageValidator;

            Get["/"] = p => GetMessageBoards(p.eventId);
            Get["/{messageBoardId}/messages"] = p => GetMessages(p.messageBoardId);
            Post["/{messageBoardId}"]         = _ => PostMessage();
            Post["/{messageBoardId}/messages/{messageId}"]   = p => LikeMessage(p.messageId);
            Delete["/{messageBoardId}/messages/{messageId}"] = p => DeleteMessage(p.messageBoardId, p.messageId);
            Put["/{messageBoardId}/messages/{messageId}"]    = _ => UpdateMessage();
        }