Beispiel #1
0
        public string PostSignDocuments([FromBody] string base64String, [FromBody] string firstName, [FromBody] string secondName)
        {
            string signedFileBase64 = "";

            var bytes = Convert.FromBase64String(base64String);

            using (var fileMemoryStream = new MemoryStream(bytes))
            {
                fileMemoryStream.Seek(0, SeekOrigin.Begin);
                _signature.SignDocument(fileMemoryStream, firstName, secondName);

                fileMemoryStream.Seek(0, SeekOrigin.Begin);
                signedFileBase64 = ConvertStreamToBase64(fileMemoryStream);
            }

            return(signedFileBase64);
        }
Beispiel #2
0
        public static void CreateSignedArchive(ISignature signatureService, string documentPath, string firstName, string secondName)
        {
            //var result = new HttpResponseMessage(HttpStatusCode.OK);
            using (var archiveMemoryStream = new MemoryStream())
            {
                using (var archive = new ZipArchive(archiveMemoryStream, ZipArchiveMode.Create, true))
                {
                    using (FileStream source = File.Open(documentPath, FileMode.Open))
                        using (var fileMemoryStream = new MemoryStream())
                        {
                            source.CopyTo(fileMemoryStream);
                            fileMemoryStream.Seek(0, SeekOrigin.Begin);
                            signatureService.SignDocument(fileMemoryStream, firstName, secondName);
                            fileMemoryStream.Seek(0, SeekOrigin.Begin);

                            var archiveFile = archive.CreateEntry(source.Name);
                            using (var entryStream = archiveFile.Open())
                            {
                                using (var streamWriter = new StreamWriter(entryStream))
                                {
                                    fileMemoryStream.CopyTo(entryStream);
                                }
                            }
                        }
                }

                using (var fileStream = new FileStream(@"C:\Users\stasy\Desktop\test.zip", FileMode.Create))
                {
                    archiveMemoryStream.Seek(0, SeekOrigin.Begin);
                    archiveMemoryStream.CopyTo(fileStream);
                }

                //result.Content = new ByteArrayContent(archiveMemoryStream.ToArray());
                //result.Content.Headers.ContentDisposition =
                //    new ContentDispositionHeaderValue("attachment")
                //    {
                //        FileName = "zip.zip"
                //    };
                //result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip");
            }
            //return result;
        }
Beispiel #3
0
        public async Task <string> SignDocuments([FromForm] IFormFileCollection uploads, [FromForm] string firstName, [FromForm] string secondName)
        {
            var fileGuid = Guid.NewGuid();

            using (var archiveMemoryStream = new MemoryStream())
            {
                using (var archive = new ZipArchive(archiveMemoryStream, ZipArchiveMode.Create, true))
                {
                    foreach (var uploadedFile in uploads)
                    {
                        using (var fileMemoryStream = new MemoryStream())
                        {
                            await uploadedFile.CopyToAsync(fileMemoryStream);

                            fileMemoryStream.Seek(0, SeekOrigin.Begin);
                            _signature.SignDocument(fileMemoryStream, firstName, secondName);
                            fileMemoryStream.Seek(0, SeekOrigin.Begin);

                            var archiveFile = archive.CreateEntry(uploadedFile.FileName);
                            using (var entryStream = archiveFile.Open())
                            {
                                using (var streamWriter = new StreamWriter(entryStream))
                                {
                                    await fileMemoryStream.CopyToAsync(entryStream);
                                }
                            }
                        }
                    }
                }

                archiveMemoryStream.Seek(0, SeekOrigin.Begin);
                _tempDataService.Add(fileGuid, archiveMemoryStream.ToArray());
            }

            return(fileGuid.ToString());
        }