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