public GetUserStateQuery(
            Fifthweek.Api.Identity.Shared.Membership.Requester requester,
            Fifthweek.Api.Identity.Shared.Membership.UserId requestedUserId,
            System.Boolean impersonate,
            System.DateTime now)
        {
            if (requester == null)
            {
                throw new ArgumentNullException("requester");
            }

            if (impersonate == null)
            {
                throw new ArgumentNullException("impersonate");
            }

            if (now == null)
            {
                throw new ArgumentNullException("now");
            }

            this.Requester       = requester;
            this.RequestedUserId = requestedUserId;
            this.Impersonate     = impersonate;
            this.Now             = now;
        }
        public DeleteChannelCommand(
            Fifthweek.Api.Identity.Shared.Membership.Requester requester,
            Fifthweek.Api.Channels.Shared.ChannelId channelId)
        {
            if (requester == null)
            {
                throw new ArgumentNullException("requester");
            }

            if (channelId == null)
            {
                throw new ArgumentNullException("channelId");
            }

            this.Requester = requester;
            this.ChannelId = channelId;
        }
        public CreateChannelCommand(
            Fifthweek.Api.Identity.Shared.Membership.Requester requester,
            Fifthweek.Api.Channels.Shared.ChannelId newChannelId,
            Fifthweek.Api.Blogs.Shared.BlogId blogId,
            Fifthweek.Api.Channels.Shared.ValidChannelName name,
            Fifthweek.Api.Channels.Shared.ValidChannelPrice price,
            System.Boolean isVisibleToNonSubscribers)
        {
            if (requester == null)
            {
                throw new ArgumentNullException("requester");
            }

            if (newChannelId == null)
            {
                throw new ArgumentNullException("newChannelId");
            }

            if (blogId == null)
            {
                throw new ArgumentNullException("blogId");
            }

            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            if (price == null)
            {
                throw new ArgumentNullException("price");
            }

            if (isVisibleToNonSubscribers == null)
            {
                throw new ArgumentNullException("isVisibleToNonSubscribers");
            }

            this.Requester    = requester;
            this.NewChannelId = newChannelId;
            this.BlogId       = blogId;
            this.Name         = name;
            this.Price        = price;
            this.IsVisibleToNonSubscribers = isVisibleToNonSubscribers;
        }