Ejemplo n.º 1
0
        public async Task MarkWorkflowStarted(
            [ActivityTrigger] Guid requestId)
        {
            SigningRequest request = await _db.Requests.SingleAsync(r => r.Id == requestId);

            request.WorkflowStartedAt = DateTimeOffset.UtcNow;
            await _db.SaveChangesAsync();
        }
        public async Task SetEventOrchestratorInfo(
            [ActivityTrigger] SetEventOrchestratorInfoParameters parameters)
        {
            Signer signer = await _db.Signers.SingleAsync(s =>
                                                          s.Email == parameters.SignerEmail &&
                                                          s.RequestId == parameters.RequestId &&
                                                          s.WaitForSignatureInstanceId == null);

            signer.WaitForSignatureInstanceId = parameters.InstanceId;
            await _db.SaveChangesAsync();
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            if (!Model.Document.FileName.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            {
                ModelState.AddModelError("Document", "Must send PDF file");
                return(Page());
            }

            var id = Guid.NewGuid();

            string[] signerEmails = Model.SignerEmails
                                    .Split(',', StringSplitOptions.RemoveEmptyEntries)
                                    .ToArray();
            var req = new SigningRequest
            {
                Id           = id,
                Subject      = Model.Subject,
                Message      = Model.Message,
                DocumentName = $"{Guid.NewGuid()}.pdf",
                Signers      = signerEmails
                               .Select(email => new Signer
                {
                    Email = email.Trim()
                })
                               .ToList()
            };

            _db.Requests.Add(req);

            await UploadAttachmentAsync(req.Id);

            await _db.SaveChangesAsync();

            await StartWorkflowAsync(req, signerEmails);

            return(RedirectToPage("Status", new { id = id.ToString() }));
        }