public override EventBase <TId> DeepCloneWithId(TId id)
        {
            var result = new SucceededInSendingEmailEvent <TId>(
                id,
                this.TimestampUtc.DeepClone(),
                this.SendEmailResponse?.DeepClone());

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

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

            var result = this.TimestampUtc.IsEqualTo(other.TimestampUtc) &&
                         this.Id.IsEqualTo(other.Id) &&
                         this.SendEmailResponse.IsEqualTo(other.SendEmailResponse);

            return(result);
        }