예제 #1
0
        public virtual ISigningResult SignDocument(ISigningRequest signRequest, bool removeCache)
        {
            var async = false;

            return(SignDocumentsInternal(async, new ISigningRequest[] { signRequest }, removeCache)
                   .FirstOrDefault());
        }
예제 #2
0
        protected virtual KeyValuePair <IPdfSigningSession, ISigningResult> SignDocumentInternal(ISigningRequest signRequest)
        {
            var result      = new SigningResult();
            var sessionData = Cache.Get(signRequest.FileId) as IPdfSigningSession;

            if (sessionData == default(IPdfSigningSession))
            {
                result = new SigningResult
                {
                    FileId    = signRequest.FileId,
                    Exception = new TimeoutException()
                };
            }
            else
            {
                try
                {
                    PdfSignerService
                    .SignData(sessionData, signRequest.SignedHashBase64);

                    result = new SigningResult
                    {
                        FileId    = signRequest.FileId,
                        Exception = default(Exception)
                    };

                    OnDocumentSigned(sessionData);
                }
                catch (Exception ex)
                {
                    result = new SigningResult
                    {
                        FileId    = signRequest.FileId,
                        Exception = ex
                    };

                    OnDocumentError(sessionData, signRequest.Parameters, ex);
                }
            }

            sessionData = Cache.Get(signRequest.FileId) as IPdfSigningSession;
            return(new KeyValuePair <IPdfSigningSession, ISigningResult>(sessionData, result));
        }