示例#1
0
 private void SetSignTaskCompleteFromStatusSentToElectronicSignatureProvider(SignTask signTask)
 {
     foreach (var signer in signTask.Signers)
     {
         Logger.DebugFormat("Completing sign task with id = {0} for customer with id = {1}", signTask.Id, signer.Id);
         foreach (var document in signTask.Documents)
         {
             if (document.IsElectronicSignatureAllowed)
             {
                 _updateDocumentStatus.Execute(new UpdateDocumentStatusRequest
                 {
                     SignTaskId        = signTask.Id,
                     Reference         = document.Reference,
                     CustomerNumber    = signer.CustomerNumber,
                     IsSigned          = true,
                     IsPresentedToUser = true
                 });
             }
         }
         _setSigningStepComplete.Execute(new SetSigningStepCompleteRequest
         {
             CustomerNumber = signer.CustomerNumber,
             SignTaskId     = signTask.Id,
             SigningMethod  = SigningMethodEnum.BankIdNorway
         });
         _setSignTaskComplete.Execute(new SetSignTaskCompleteRequest
         {
             CustomerNumber = signer.CustomerNumber,
             SignTaskId     = signTask.Id
         });
         Logger.DebugFormat("Completed sign task with id = {0} for customer with id = {1}", signTask.Id, signer.Id);
     }
 }
示例#2
0
        public async Task SignAsync(SignTask task, SignOptions signOptions)
        {
            var SignClien = new RestClient("https://mobilelearn.chaoxing.com/pptSign/stuSignajax")
            {
                CookieContainer = _Cookie
            };
            var request = new RestRequest(Method.GET);

            // ?activeId=292002019&appType=15&ifTiJiao=1&latitude=-1&longitude=-1&clientip=1.1.1.1&address=中国&objectId=3194679e88dbc9c60a4c6e31da7fa905
            request.AddParameter("activeId", task.Id);
            request.AddParameter("appType", "15");
            request.AddParameter("ifTiJiao", "1");
            request.AddParameter("latitude", signOptions.Latitude);
            request.AddParameter("longitude", signOptions.Longitude);
            request.AddParameter("clientip", signOptions.ClientIp);
            request.AddParameter("address", signOptions.Address);
            request.AddParameter("objectId", signOptions.ImageId);
            var response = await SignClien.ExecuteGetAsync(request);

            if (response.Content == "success" || response.Content == "您已签到过了")
            {
                return;
            }
            throw new Exception($"签到出错: {response.Content}");
        }
示例#3
0
        private bool PossiblyPartiallyCompleteSignTask(SignTask signTask)
        {
            var isChanged = false;

            foreach (var signer in signTask.Signers)
            {
                var allSigningProcesses = _eSignature.GetAllSigningProcesses(new GetAllSigningProcessesRequest
                {
                    OrderId        = signTask.OrderId,
                    CustomerNumber = signer.CustomerNumber
                });
                if (allSigningProcesses?.SigningProcessResults != null)
                {
                    foreach (var result in allSigningProcesses.SigningProcessResults)
                    {
                        if (result.DocumentDetails.DocumentStatus ==
                            GetOrderStatusResponseDocumentStatusesDocumentStatusStatusDTO.Complete)
                        {
                            _updateDocumentStatus.Execute(new UpdateDocumentStatusRequest
                            {
                                SignTaskId        = signTask.Id,
                                Reference         = result.DocumentDetails.Reference,
                                CustomerNumber    = result.CustomerNumber,
                                IsSigned          = true,
                                IsPresentedToUser = true
                            });
                            isChanged = true;
                        }
                    }
                }
                else
                {
                    Logger.Debug($"Unable to update document status on sign task with id = {signTask.Id} because no signing process information was retrieved");
                }

                var presentedCount       = 0;
                var presentableDocuments =
                    signTask.Documents.Where(x => x.SignTaskDocumentType != SignTaskDocumentType.CombinedDocument).ToList();
                foreach (var document in presentableDocuments)
                {
                    var status = _documentStatus.Get(signTask.Id, document.Reference, signer.CustomerNumber);
                    if (status?.SignTaskDocumentStatus == null)
                    {
                        continue;
                    }
                    if (status.SignTaskDocumentStatus.IsPresentedToUser)
                    {
                        presentedCount++;
                    }
                }
                if (presentedCount == presentableDocuments.Count)
                {
                    Logger.Debug($"Signer with id = {signer.Id} has read and signed all documents in sign task with id = {signTask.Id}");
                    _setSigningStepComplete.Execute(new SetSigningStepCompleteRequest
                    {
                        SignTaskId     = signTask.Id,
                        CustomerNumber = signer.CustomerNumber,
                        SigningMethod  = SigningMethodEnum.BankIdNorway
                    });
                    _setSignTaskComplete.Execute(new SetSignTaskCompleteRequest
                    {
                        SignTaskId     = signTask.Id,
                        CustomerNumber = signer.CustomerNumber
                    });
                    isChanged = true;
                }
                else
                {
                    Logger.Debug($"Signer with id = {signer.Id} has not completed sign task with id = {signTask.Id}");
                }
            }
            return(isChanged);
        }