Пример #1
0
 public static DSAPIServiceSoapClient GetDsClient(IDocusignCreds creds)
 {
     return(new DSAPIServiceSoapClient(new BasicHttpBinding(BasicHttpSecurityMode.Transport)
     {
         MaxReceivedMessageSize = 167772160
     }, new EndpointAddress(GetEndpoint(creds))));
 }
Пример #2
0
        public static HttpRequestMessageProperty GetAuthHeaderRequestProperty(IDocusignCreds creds)
        {
            var httpRequestProperty = new HttpRequestMessageProperty();

            httpRequestProperty.Headers.Add("X-DocuSign-Authentication", GetDsAuth(creds));
            return(httpRequestProperty);
        }
Пример #3
0
 private static string GetDsAuth(IDocusignCreds creds)
 {
     return("<DocuSignCredentials><Username>" + creds.UserName
            + "</Username><Password>" + creds.Password
            + "</Password><IntegratorKey>" + creds.IntegratorKey
            + "</IntegratorKey></DocuSignCredentials>");
 }
Пример #4
0
 private static string GetEndpoint(IDocusignCreds creds)
 {
     if (creds.UseDemoEnvironment)
     {
         return(DEMO_ENDPOINT);
     }
     else
     {
         return(PROD_ENDPOINT);
     }
 }
Пример #5
0
        //Docusign API dev guide says this method is subject to call limit and should not be used more than once every 15 min per unique envelope ID
        public static string GetDocumentStatus(string envelopeId, [IgnoreMappingDefault] DocusignCredentials overrideCredentials = null)
        {
            IDocusignCreds creds = overrideCredentials as IDocusignCreds ?? DSServiceClientFactory.DsSettings;

            var dsClient = DSServiceClientFactory.GetDsClient(creds);

            using (var scope = new System.ServiceModel.OperationContextScope(dsClient.InnerChannel))
            {
                OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = DSServiceClientFactory.GetAuthHeaderRequestProperty(creds);

                return(dsClient.RequestStatus(envelopeId).Status.ToString());
            }
        }
Пример #6
0
        public static FileData GetSignedDocument(string envelopeId, [IgnoreMappingDefault] DocusignCredentials overrideCredentials = null)
        {
            IDocusignCreds creds = overrideCredentials as IDocusignCreds ?? DSServiceClientFactory.DsSettings;

            var dsClient = DSServiceClientFactory.GetDsClient(creds);

            using (var scope = new System.ServiceModel.OperationContextScope(dsClient.InnerChannel))
            {
                OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = DSServiceClientFactory.GetAuthHeaderRequestProperty(creds);

                var documentsPDFs = dsClient.RequestDocumentPDFs(envelopeId);

                if (documentsPDFs == null || documentsPDFs.DocumentPDF == null || documentsPDFs.DocumentPDF.Length == 0)
                {
                    return(null);
                }

                return(new FileData(string.Format("{0}.pdf", documentsPDFs.DocumentPDF[0].Name), documentsPDFs.DocumentPDF[0].PDFBytes));
            }
        }
Пример #7
0
        public static FileData GetCertificate(string envelopeId, [IgnoreMappingDefault] DocusignCredentials overrideCredentials = null)
        {
            IDocusignCreds creds = overrideCredentials as IDocusignCreds ?? DSServiceClientFactory.DsSettings;

            DSAPIServiceSoapClient dsClient = DSServiceClientFactory.GetDsClient(creds);

            using (OperationContextScope scope = new OperationContextScope(dsClient.InnerChannel))
            {
                OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = DSServiceClientFactory.GetAuthHeaderRequestProperty(creds);

                var documentsPDFs = dsClient.RequestCertificate(envelopeId);

                if (documentsPDFs == null || documentsPDFs.DocumentPDF == null || documentsPDFs.DocumentPDF.Length == 0)
                {
                    return(null);
                }

                return(new FileData($"{documentsPDFs.DocumentPDF[0].Name}.pdf", documentsPDFs.DocumentPDF[0].PDFBytes));
            }
        }