Exemple #1
0
        private async Task <byte[]> CompleteDocumentSignatureAsync(MultipartUploadMedia uploadMedia, string requestJson)
        {
            string Url = Startup.Configuration["SignSupport:Url"] + "/completer/document/signature";
            HttpResponseMessage HttpResponse = await MultipartUploader.Upload(Url, new List <MultipartUploadMedia> {
                uploadMedia
            }, requestJson);

            return(await TryParseResponseAsync(HttpResponse));
        }
        private List <MultipartUploadMedia> GetMultipartUploadMedias()
        {
            List <MultipartUploadMedia> uploadMedias = new List <MultipartUploadMedia>();

            foreach (var file in SignFormData.Documents)
            {
                byte[] bytes = Encoding.UTF8.GetBytes(file.FileName);
                byte[] data  = FileHelpers.ProcessFormFile(file, ModelState);
                MultipartUploadMedia uploadMedia = new MultipartUploadMedia(data, "document", file.FileName);
                uploadMedias.Add(uploadMedia);
            }
            return(uploadMedias);
        }
Exemple #3
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                GeneralError = ErrorHelper.GetError("Failed to complete signing, invalid response!");
                return(Page());
            }
            try
            {
                SignStorageObject     SignStorageObject     = SignStorageObjectFinder.Find(SignResponseData.RelayState);
                SignCompletionRequest SignCompletionRequest = CreateSignCompletionRequest(SignStorageObject);
                string RequestJson = Encoding.UTF8.GetString(JsonUtil.JsonSerialize <SignCompletionRequest>(SignCompletionRequest));

                // Perform complete-signing request for each document
                foreach (var DocumentStorageObject in SignStorageObject.Documents)
                {
                    byte[] OriginalDocument          = DocumentStorageObject.OriginalDocument;
                    MultipartUploadMedia UploadMedia = new MultipartUploadMedia(OriginalDocument, "document", DocumentStorageObject.FileName);
                    byte[] SignedDocumentBytes       = await CompleteDocumentSignatureAsync(UploadMedia, RequestJson);

                    DocumentStorageObject.SignedDocument = SignedDocumentBytes;
                }
                // Store signed documents in database
                SignSupportDatabase.Upsert(SignStorageObject);
                return(Redirect("~/SignResult?id=" + SignResponseData.RelayState));
            }
            catch (SignSupportException Error)
            {
                SignSupportError = Error.SignSupportError;
            }
            catch (Exception Error)
            {
                GeneralError = ErrorHelper.GetError(Error);
            }
            return(Page());
        }