public DocumentSignerRequest(string email, SignatureActionType signatureAction, SignerNationalityType foreingnSigner, SignatureType faceToFaceSignature, CertificateType icpbrCertificate)
        {
            if (string.IsNullOrEmpty(email))
            {
                throw new ArgumentNullException("email", "Email is null or empty");
            }

            Email               = email;
            SignatureAction     = signatureAction.GetHashCode();
            ForeingnSigner      = foreingnSigner.GetHashCode();
            IcpbrCertificate    = icpbrCertificate.GetHashCode();
            FaceToFaceSignature = faceToFaceSignature.GetHashCode();
        }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (Alias != null)
         {
             hashCode = hashCode * 59 + Alias.GetHashCode();
         }
         if (Customer != null)
         {
             hashCode = hashCode * 59 + Customer.GetHashCode();
         }
         if (CustomerReference != null)
         {
             hashCode = hashCode * 59 + CustomerReference.GetHashCode();
         }
         if (Language != null)
         {
             hashCode = hashCode * 59 + Language.GetHashCode();
         }
         if (RecurrenceType != null)
         {
             hashCode = hashCode * 59 + RecurrenceType.GetHashCode();
         }
         if (SignatureType != null)
         {
             hashCode = hashCode * 59 + SignatureType.GetHashCode();
         }
         if (UniqueMandateReference != null)
         {
             hashCode = hashCode * 59 + UniqueMandateReference.GetHashCode();
         }
         return(hashCode);
     }
 }