public void ProcessTokenStatusEvent(Session session, Message message, Action <Session, Message, Exception> onFailure) { AsyncPattern <string> asyncPattern; if (!AsyncHandlers.TryGetValue(message.CorrelationID, out asyncPattern)) { onFailure(session, message, new Exception("Failed to find correlation id: " + message.CorrelationID)); } else { AsyncHandlers.Remove(message.CorrelationID); if (MessageTypeNames.TokenGenerationFailure.Equals(message.MessageType)) { var reasonElement = message.GetElement(ElementNames.Reason); var error = new ResponseError( reasonElement.GetElementAsString(ElementNames.Source), reasonElement.GetElementAsString(ElementNames.Category), reasonElement.GetElementAsString(ElementNames.SubCategory), reasonElement.GetElementAsInt32(ElementNames.ErrorCode), reasonElement.GetElementAsString(ElementNames.Description)); asyncPattern.OnFailure(new ContentException <ResponseError>(error)); } else if (MessageTypeNames.TokenGenerationSuccess.Equals(message.MessageType)) { asyncPattern.OnSuccess(message.GetElementAsString(ElementNames.Token)); } else { onFailure(session, message, new Exception("Unknown message type: " + message.MessageType)); } } }
public void Process(Session session, Message message, Action <Session, Message, Exception> onFailure) { AsyncPattern <Service> asyncHandler; if (!AsyncHandlers.TryGetValue(message.CorrelationID, out asyncHandler)) { onFailure(session, message, new Exception("Failed to find handler for service status event with correlation id: " + message.CorrelationID)); return; } AsyncHandlers.Remove(message.CorrelationID); if (MessageTypeNames.ServiceOpenFailure.Equals(message.MessageType)) { asyncHandler.OnFailure(new ContentException <ServiceOpenFailureEventArgs>(new ServiceOpenFailureEventArgs())); } else if (MessageTypeNames.ServiceOpened.Equals(message.MessageType)) { asyncHandler.OnSuccess(session.GetService(message.GetElementAsString(ElementNames.ServiceName))); } else { onFailure(session, message, new Exception("Unknown service status event message: " + message)); } }
public IPromise <string> RequestToken() { return(new Promise <string>((resolve, reject) => { var correlationId = new CorrelationID(); AsyncHandlers.Add(correlationId, AsyncPattern <string> .Create(resolve, reject)); Session.GenerateToken(correlationId); })); }
public IPromise <Service> Request(string uri) { return(new Promise <Service>((resolve, reject) => { var correlationId = new CorrelationID(); AsyncHandlers.Add(correlationId, AsyncPattern <Service> .Create(resolve, reject)); Session.OpenServiceAsync(uri, correlationId); })); }
public override IPromise <bool> Request(Session session, Service service, Identity identity) { return(new Promise <bool>((resolve, reject) => { var correlationId = new CorrelationID(); AsyncHandlers.Add(correlationId, AsyncPattern <bool> .Create(resolve, reject)); var request = CreateRequest(service, _clientIpAddress, _uuid); SendAuthorizationRequest(session, identity, request, correlationId); })); }
private IPromise <bool> Request(Session session, Service service, Identity identity, string token) { return(new Promise <bool>((resolve, reject) => { var correlationId = new CorrelationID(); AsyncHandlers.Add(correlationId, AsyncPattern <bool> .Create(resolve, reject)); var request = CreateRequest(service, token); SendAuthorizationRequest(session, identity, request, correlationId); })); }