public async Task Save() { try { BeginAction(); var patch = Payload.Patch(); RevocationRequestInfo revinfo = new RevocationRequestInfo(); revinfo.Comment = Comment.Value; revinfo.Signer = GetSigner(); GeneratedFile revocationXml = await Async((x) => Payload.Api.GenerateRevocationRequestXml( x, Payload.BoxId, Payload.Message.MessageId, Payload.Entity.EntityId, revinfo)); SignedContent revocSignContent = new SignedContent(); revocSignContent.Content = revocationXml.Content; if (!TrySign(revocSignContent)) { throw new Exception("Ошибка подписи документа TrySign"); } RevocationRequestAttachment revattch = new RevocationRequestAttachment(); revattch.ParentEntityId = Payload.Entity.EntityId; revattch.SignedContent = revocSignContent; patch.AddRevocationRequestAttachment(revattch); await Async(x => Payload.Api.PostMessagePatch(x, patch)); await EndAction(); } catch (Exception e) { var error = ErrorHelper.TranslateException(e) ?? "Не удалось выполнить операцию, попробуйте повторить позднее."; Manager.Warning(error); Log.Error(error, e); await EndAction(false); } }
public void Revocation(Message revocation) { RevocationRequestInfo revinfo = new RevocationRequestInfo(); revinfo.Comment = "АННУЛИРОВНИЕ"; revinfo.Signer = signers.First(); var document = revocation.Entities.First(); MessagePatchToPost patch = new MessagePatchToPost() { BoxId = box.BoxId, MessageId = revocation.MessageId }; GeneratedFile revocationXml = api.GenerateRevocationRequestXml( token, box.BoxId, revocation.MessageId, document.EntityId, revinfo); SignedContent revocSignContent = new SignedContent(); revocSignContent.Content = revocationXml.Content; revocSignContent.SignWithTestSignature = true; RevocationRequestAttachment revattch = new RevocationRequestAttachment(); revattch.ParentEntityId = document.EntityId; revattch.SignedContent = revocSignContent; patch.AddRevocationRequestAttachment(revattch); api.PostMessagePatch(token, patch); }