public virtual void OnCreateCache(IPdfSigningSession pdfPostSigningSession, ISigningDocument document, CacheItemPolicy cacheItemPolicy, out bool removerCache) { removerCache = true; if (!Cache.Add(pdfPostSigningSession.FileId, pdfPostSigningSession, cacheItemPolicy)) { throw new FileBeingSignedException(); } }
protected virtual ISigningResult GetDocumentAuthenticatedAttributesInternal ( ISigningDocument document, string ownerIdentification, string location, string reason, string hashAlgorithm, string signatureAlgorithm, X509Certificate2 userCertificate, IDictionary <string, object> parameters = default(IDictionary <string, object>), int timeoutInSeconds = default(int) ) { var removeCache = false; var result = default(ISigningResult); try { var pdfSigningSession = new PdfSigningSession { FileId = document.FileId, UserId = document.UserId, FilePath = document.FilePath, HashAlgorithm = hashAlgorithm, OwnerIdentification = ownerIdentification, SignatureAlgorithm = signatureAlgorithm, SignatureVisible = true, UserCertificate = userCertificate, Location = location, Reason = reason, Parameters = parameters }; if (timeoutInSeconds == default(int)) { timeoutInSeconds = CacheTimeoutInSeconds; } var cachePolicy = GetCacheItemPolicy(timeoutInSeconds); OnCreateCache(pdfSigningSession, pdfSigningSession, cachePolicy, out removeCache); //necessário criar o documento somente depois que o cache foi criado //para evitar exceção por utilização simultânea do documento temporário CopyFileToTemporaryFilePath(pdfSigningSession); UpdateDocument(pdfSigningSession, document); pdfSigningSession.AuthenticatedAttributes = PdfSignerService .CreateAuthenticatedAttribute(pdfSigningSession); result = new SigningResult { FileId = document.FileId, AuthenticatedAttributeBase64 = pdfSigningSession.AuthenticatedAttributes.ValueBase64, Exception = default(Exception) }; } catch (Exception ex) { result = new SigningResult { FileId = document.FileId, AuthenticatedAttributeBase64 = default(string), Exception = ex }; if (removeCache) { Cache .Remove(document.FileId); } OnDocumentError(document, parameters, ex); } return(result); }
public virtual void UpdateDocument(IPdfSigningSession pdfPostSigningSession, ISigningDocument document) { }
public virtual void OnDocumentError(ISigningDocument document, IDictionary <string, object> parameters, Exception exception) { }
public abstract void CopyFileToTemporaryFilePath(ISigningDocument document);