/// <inheritdoc />
        public EventToPutWithIdOnHandlingStatusMatch <TId> DeepClone()
        {
            var result = new EventToPutWithIdOnHandlingStatusMatch <TId>(
                this.StatusToMatch.DeepClone(),
                this.CompositeHandlingStatusMatchStrategy.DeepClone(),
                this.EventToPut?.DeepClone(),
                this.ChainOfResponsibilityLinkMatchStrategy.DeepClone());

            return(result);
        }
        /// <inheritdoc />
        public bool Equals(EventToPutWithIdOnHandlingStatusMatch <TId> other)
        {
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            if (ReferenceEquals(other, null))
            {
                return(false);
            }

            var result = this.StatusToMatch.IsEqualTo(other.StatusToMatch) &&
                         this.CompositeHandlingStatusMatchStrategy.IsEqualTo(other.CompositeHandlingStatusMatchStrategy) &&
                         this.EventToPut.IsEqualTo(other.EventToPut) &&
                         this.ChainOfResponsibilityLinkMatchStrategy.IsEqualTo(other.ChainOfResponsibilityLinkMatchStrategy);

            return(result);
        }