示例#1
0
        private SignerInfo toDPASignerInfo(signer ActalisSigner)
        {
            CertificateInfo ci = toCertificateInfo(ActalisSigner.certificate);

            TSInfo[]   tsi = { ConvertFromActalisTS(ActalisSigner.timeStamp) };
            SignerInfo si  = new SignerInfo();

            try
            {
                si.CertificateInfo        = ci;
                si.SignatureAlgorithm     = ActalisSigner.signatureInfo.sigAlgorithm;
                si.SigningTime            = ActalisSigner.signatureInfo.sigTime;
                si.SignatureTimeStampInfo = tsi;


                //gestione dei controfirmatari
                if (ActalisSigner.counterSignature != null)
                {
                    List <SignerInfo> DPACounterSignerList = new List <SignerInfo>();
                    foreach (signer CounterSigner in ActalisSigner.counterSignature)
                    {
                        //Ricorsione
                        SignerInfo csi = toDPASignerInfo(CounterSigner);
                        csi.isCountersigner = true;
                        DPACounterSignerList.Add(csi);
                    }
                    si.counterSignatures = DPACounterSignerList.ToArray();
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Errore in toDPASignerInfo {0} stk {1}", ex.Message, ex.StackTrace);
            }
            return(si);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            DocusignAuth docusignObj = new DocusignAuth();

            docusignObj.UserName      = ConfigurationManager.AppSettings["Username"].ToString();
            docusignObj.Password      = ConfigurationManager.AppSettings["Password"].ToString();
            docusignObj.IntegratorKey = ConfigurationManager.AppSettings["IntegratorKey"].ToString();
            docusignObj.TemplateId    = ConfigurationManager.AppSettings["TemplateId"].ToString();
            docusignObj.Url           = ConfigurationManager.AppSettings["Url"].ToString();

            DocusignMethods docusignMethods = new DocusignMethods(docusignObj);



            #region Document
            Document document = new Document();
            document.documentId = "1";
            document.name       = "test_document.pdf";

            DocDetail docDetail = new DocDetail();
            docDetail.document = document;
            #endregion

            #region RecipientCreation
            SignHere objSignHere = new SignHere();
            objSignHere.xPosition  = "100";
            objSignHere.yPosition  = "100";
            objSignHere.documentId = "1";
            objSignHere.pageNumber = "1";

            SignHereTab objSignHereTab = new SignHereTab();
            objSignHereTab.signHere = objSignHere;

            Tab objTab = new Tab();
            objTab.signHereTabs = objSignHereTab;

            signer objSigner = new signer();
            objSigner.recipientId = "1";
            objSigner.name        = "jay";
            objSigner.email       = "*****@*****.**";
            objSigner.tabs        = objTab;

            List <signer> signerList = new List <signer>();
            signerList.Add(objSigner);

            Recipients recip = new Recipients();
            recip.signers = signerList;

            #endregion

            envelopeDefinition data = new envelopeDefinition();
            data.emailSubject = "Hello";
            data.emailBlurb   = "Hello";
            data.status       = signatureStatus.sent;
            data.documents    = docDetail;
            data.recipients   = recip;

            string response = docusignMethods.RequestSignatureFromDocument(@"C:\Users\jay\Desktop\test_document.pdf", data);
        }
示例#3
0
文件: Sign.cs 项目: AutoCSer/AutoCSer
        unsafe static Sign()
        {
            Type type = typeof(valueType);

            if (type.IsArray || type.IsEnum || type.IsPointer || type.IsInterface)
            {
                return;
            }
            SignAttribute             attribute  = AutoCSer.Metadata.TypeAttribute.GetAttribute <SignAttribute>(type, true) ?? SignAttribute.AllMember;
            LeftArray <FieldIndex>    fields     = AutoCSer.Net.WebClient.Emit.Pub.GetFields <valueType, SignMemberAttribute>(attribute.Filter, attribute.IsAllMember);
            LeftArray <PropertyIndex> properties = Emit.Pub.GetProperties <valueType, SignMemberAttribute>(attribute.Filter, attribute.IsAllMember, true, false);
            int count = fields.Length + properties.Length - 1;

            if (count < 0)
            {
                return;
            }
            LeftArray <KeyValue <FieldIndex, PropertyIndex> > members = new LeftArray <KeyValue <FieldIndex, PropertyIndex> >(count);
            FieldInfo    signField    = null;
            PropertyInfo signProperty = null;

            foreach (FieldIndex field in fields)
            {
                if (field.Member.Name == "sign")
                {
                    if (field.Member.FieldType != typeof(string))
                    {
                        return;
                    }
                    signField = field.Member;
                }
                else
                {
                    members.UnsafeAdd(new KeyValue <FieldIndex, PropertyIndex>(field, null));
                }
            }
            foreach (PropertyIndex property in properties)
            {
                if (property.Member.Name == "sign")
                {
                    if (property.Member.PropertyType != typeof(string))
                    {
                        return;
                    }
                    signProperty = property.Member;
                }
                else
                {
                    members.UnsafeAdd(new KeyValue <FieldIndex, PropertyIndex>(null, property));
                }
            }
            if ((signField == null) ^ (signProperty == null))
            {
                setSign = signField == null?Emit.Property.SetProperty <valueType, string>(signProperty) : AutoCSer.Emit.Field.UnsafeSetField <valueType, string>(signField);

                if (count == 0)
                {
                    names       = EmptyArray <string> .Array;
                    valueGetter = empty;
                }
                else
                {
                    members.Array.sort(SignAttribute.NameCompare);
                    names  = new string[memberCount = count];
                    isUtf8 = Unmanaged.GetStaticPointer(((count + 31) >> 5) << 2, true);
#if NOJIT
                    signer signer = new signer(members.Array.Length);
#else
                    SignDynamicMethod dynamicMethod = new SignDynamicMethod(type);
#endif
                    MemoryMap utf8Map = new MemoryMap(isUtf8.Byte);
                    count = 0;
                    foreach (KeyValue <FieldIndex, PropertyIndex> member in members.Array)
                    {
#if NOJIT
                        if (member.Key == null ? signer.Push(member.Value, count) : signer.Push(member.Key, count))
                        {
                            utf8Map.Set(count);
                        }
#else
                        if (member.Key == null ? dynamicMethod.Push(member.Value, count) : dynamicMethod.Push(member.Key, count))
                        {
                            utf8Map.Set(count);
                        }
#endif
                        names[count++] = member.Key == null ? member.Value.Member.Name : member.Key.Member.Name;
                    }
#if NOJIT
                    valueGetter = signer.Sign;
#else
                    valueGetter = (Action <valueType, string[]>)dynamicMethod.Create <Action <valueType, string[]> >();
#endif
                }
            }
        }
示例#4
0
 return(addr(new TestServer(signer: signer, gosum: gosum)));