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); }
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()); }