/// <summary> /// GetStatus /// </summary> /// <param name="securityToken"></param> /// <param name="transactionId"></param> /// <returns></returns> string INetworkNodeBinding.GetStatus(string securityToken, string transactionId) { Init(); LOG.Debug("GetStatus"); #region Validate if (string.IsNullOrEmpty(transactionId)) { throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ENExceptionCodeType.E_InvalidParameter, "NULL transactionId argument"); } #endregion try { LOG.Debug("Getting visit"); NamedEndpointVisit visit = _service11Provider.VisitProvider.GetVisit(securityToken); LOG.Debug("GetStatus using visit: " + visit); TransactionStatus tranStatus = _service11Provider.TransactionService.GetStatus( new SimpleId(transactionId), visit); LOG.Debug("TransactionStatus: " + tranStatus); return(CommonTransactionStatusCodeProvider.ConvertTo11Enum(tranStatus.Status)); } catch (Exception ex) { LOG.Error("Error while getting status", ex); throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ex); } }
/// <summary> /// NotifyStatus /// </summary> /// <param name="endpoint"></param> /// <param name="flow"></param> /// <param name="transactionId"></param> /// <param name="status"></param> /// <param name="description"></param> /// <returns></returns> public CommonTransactionStatusCode NotifyStatus20(string endpoint, string flow, string transactionId, CommonTransactionStatusCode status, string description) { Notify notify = NewStatusNotifyObject(endpoint, flow, transactionId, status, description); StatusResponseType statusResp = _requestor.Notify(notify); return(CommonTransactionStatusCodeProvider.Convert(statusResp.status.ToString())); }
/// <summary> /// NotifyEvent /// </summary> /// <returns></returns> public CommonTransactionStatusCode NotifyEvent11(string nodeEndpoint, string eventName, string eventType, string eventDescription) { string rtnStatus = _requestor.NotifyEvent(Authenticate(), nodeEndpoint, eventName, eventType, eventDescription); return(CommonTransactionStatusCodeProvider.Convert(rtnStatus)); }
/// <summary> /// NotifyEvent /// </summary> /// <returns></returns> public CommonTransactionStatusCode NotifyEvent20(string nodeEndpoint, string flow, string messageName, CommonTransactionStatusCode status, string description, string eventName) { Notify notify = NewEventNotifyObject(nodeEndpoint, flow, messageName, status, description, eventName); StatusResponseType statusResp = _requestor.Notify(notify); return(CommonTransactionStatusCodeProvider.Convert(statusResp.status.ToString())); }
/// <summary> /// NotifyStatus /// </summary> /// <param name="endpoint"></param> /// <param name="transactionId"></param> /// <param name="status"></param> /// <param name="description"></param> /// <returns></returns> public CommonTransactionStatusCode NotifyStatus11(string endpoint, string transactionId, CommonTransactionStatusCode status, string description) { string rtnStatus = _requestor.NotifyStatus(Authenticate(), endpoint, transactionId, CommonTransactionStatusCodeProvider.ConvertTo11Enum(status), description); return(CommonTransactionStatusCodeProvider.Convert(rtnStatus)); }
/// <summary> /// /// </summary> /// <param name="securityToken"></param> /// <param name="nodeAddress"></param> /// <param name="dataflow"></param> /// <param name="documents"></param> /// <returns></returns> string INetworkNodeBinding.Notify(string securityToken, string nodeAddress, string dataflow, NodeDocument[] documents) { Init(); LOG.Debug("Notify"); #region Validate if (documents == null || documents.Length == 0) { throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ENExceptionCodeType.E_InvalidParameter, "Document not provided"); } if (documents.Length > 1) { throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ENExceptionCodeType.E_InvalidParameter, "Only one document per notification allowed"); } SoapContext context = HttpSoapContext.RequestContext; if (context.Attachments != null && context.Attachments.Count > 0) { // TODO: Mark, why is this check here? Calling Notify() from the endpoint client NotifyEvent(), NotifyStatus(), etc. methods fail here throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ENExceptionCodeType.E_InvalidParameter, "Notify does not use DIME. Put content in the message."); } if (string.IsNullOrEmpty(dataflow)) { throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ENExceptionCodeType.E_InvalidParameter, "NULL dataflow argument"); } #endregion try { LOG.Debug("Getting visit"); NamedEndpointVisit visit = _service11Provider.VisitProvider.GetVisit(securityToken); NotificationMessageCategoryType messageCategory = NotificationMessageCategoryType.None; switch (dataflow.Trim().ToLower()) { case "http://www.exchangenetwork.net/node/event": messageCategory = NotificationMessageCategoryType.Event; break; case "http://www.exchangenetwork.net/node/status": messageCategory = NotificationMessageCategoryType.Status; break; case "other": messageCategory = NotificationMessageCategoryType.Status; break; default: throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ENExceptionCodeType.E_InvalidParameter, "Invalid dataflow argument: " + dataflow); } ComplexNotification notif = new ComplexNotification(); notif.FlowName = dataflow; notif.Uri = nodeAddress; notif.Notifications = new List <Notification>(); LOG.Debug("Spooling documents"); foreach (NodeDocument wsdlDoc in documents) { Notification not = new Notification(); not.Category = messageCategory; not.Name = wsdlDoc.name; not.Status = new TransactionStatus(); not.Status.Status = CommonTransactionStatusCodeProvider.Convert(wsdlDoc.type); not.Status.Description = Encoding.ASCII.GetString(wsdlDoc.content); LOG.Debug(" Notification:" + not); notif.Notifications.Add(not); } LOG.Debug("GetStatus using visit: " + visit); TransactionStatus tranStatus = _service11Provider.TransactionService.Notify(notif, visit); LOG.Debug("TransactionStatus: " + tranStatus); return(CommonTransactionStatusCodeProvider.ConvertTo11Enum(tranStatus.Status)); } catch (Exception ex) { LOG.Error("Error while fotifying", ex); throw _service11Provider.FaultProvider.GetFault(EndpointVersionType.EN11, ex); } }