public static bool Equals(InitiateInputRequest?left, InitiateInputRequest?right)
        {
            bool result = SubscribedRequest.Equals(left, right);

            result &= (result ? InitiateInputRequestDetails.Equals(left?.Details, right?.Details) : false);
            result &= (result ? (left?.Articles.SequenceEqual(right?.Articles)).GetValueOrDefault() : false);
            result &= (result ? EqualityComparer <bool?> .Default.Equals(left?.IsNewDelivery, right?.IsNewDelivery) : false);
            result &= (result ? EqualityComparer <bool?> .Default.Equals(left?.SetPickingIndicator, right?.SetPickingIndicator) : false);

            return(result);
        }
 public InitiateInputRequest(MessageId id,
                             SubscriberId source,
                             SubscriberId destination,
                             InitiateInputRequestDetails details,
                             IEnumerable <InitiateInputRequestArticle> articles)
     :
     this(id,
          source,
          destination,
          details,
          articles,
          isNewDelivery : null,
          setPickingIndicator : null)
 {
 }
        public InitiateInputRequest(MessageId id,
                                    SubscriberId source,
                                    SubscriberId destination,
                                    InitiateInputRequestDetails details,
                                    IEnumerable <InitiateInputRequestArticle> articles,
                                    bool?isNewDelivery,
                                    bool?setPickingIndicator)
            :
            base(id, StandardDialogs.InitiateInput, source, destination)
        {
            this.Details = details;

            this.Articles.AddRange(articles);

            this.IsNewDelivery       = isNewDelivery;
            this.SetPickingIndicator = setPickingIndicator;
        }