public InitiateInputMessage(InitiateInputRequest request,
                             InitiateInputMessageDetails details,
                             IEnumerable <InitiateInputMessageArticle> articles)
     :
     this(request.Id, request.Destination, request.Source, details, articles)
 {
 }
        public static bool Equals(InitiateInputMessage?left, InitiateInputMessage?right)
        {
            bool result = SubscribedMessage.Equals(left, right);

            result &= (result ? InitiateInputMessageDetails.Equals(left?.Details, right?.Details) : false);
            result &= (result ? (left?.Articles.SequenceEqual(right?.Articles)).GetValueOrDefault() : false);

            return(result);
        }
        public InitiateInputMessage(MessageId id,
                                    SubscriberId source,
                                    SubscriberId destination,
                                    InitiateInputMessageDetails details,
                                    IEnumerable <InitiateInputMessageArticle> articles)
            :
            base(id, StandardDialogs.InitiateInput, source, destination)
        {
            this.Details = details;

            this.Articles.AddRange(articles);
        }