/// <summary> /// Отправка ответа на запрос /// </summary> /// <param name="response">ответ</param> /// <returns>статус ответа</returns> public override IMessageStatus SendResponse(IResponse response) { var responseData = new SenderProvidedResponseData { Id = ReferenceName, MessageID = response.MessageId.ToString(), To = response.ReplyTo, Items = new object[] { response.MessageContent, }, ItemsElementName = new[] { ItemsChoiceType.MessagePrimaryContent } }; var signedMessage = CryptoProNetHelper.SignSmevObject(responseData, ReferenceName, SerialNumber); IMessageStatus status = null; Execute(delegate { var metadata = SmevService.SendResponse(responseData, null, signedMessage, out _); status = SmevTestMessageStatus.Create(metadata); }, response.MessageId); return(status); }
public override IMessageStatus SendReject(IReject reject) { var responseData = new SenderProvidedResponseData { Id = ReferenceName, MessageID = reject.MessageId.ToString(), To = reject.ReplyTo, Items = new object[] { new SenderProvidedResponseDataRequestRejected() { RejectionReasonDescription = reject.RejectionMessage, RejectionReasonCode = (RejectCode)reject.RejectCode }, }, ItemsElementName = new[] { ItemsChoiceType.RequestRejected } }; var signedMessage = CryptoProNetHelper.SignSmevObject(responseData, ReferenceName, SerialNumber); IMessageStatus status = null; Execute(delegate { var metadata = SmevService.SendResponse(responseData, null, signedMessage, out _); status = SmevTestMessageStatus.Create(metadata); }, reject.MessageId); return(status); }
/// <summary> /// Обновить статус сообщения /// </summary> /// <param name="messageStatus">Статус сообщения</param> public void UpdateStatus(IMessageStatus messageStatus) { var message = Db.Messages.FirstOrDefault(i => i.MessageId == messageStatus.MessageId); if (message == null) { return; } message.Status = (Status)messageStatus.Status; Db.Entry(message).State = EntityState.Modified; Db.SaveChanges(); }
public override IMessageStatus SendRequest(IRequest request) { var requestData = new SenderProvidedRequestData() { Id = ReferenceName, MessageID = request.MessageId.ToString(), MessagePrimaryContent = request.MessageContent, TestMessage = request.IsTest != null && request.IsTest.Value ? new smev3_1_2_test.Void() : null }; var signedMessage = CryptoProNetHelper.SignSmevObject(requestData, ReferenceName, SerialNumber); IMessageStatus status = null; Execute(delegate { var metadata = SmevService.SendRequest(requestData, null, signedMessage, out _); status = SmevTestMessageStatus.Create(metadata); }, request.MessageId); return(status); }