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); }
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 } } }
return(addr(new TestServer(signer: signer, gosum: gosum)));