private async void ProcessRequest(IRequestAuthenticationMessage request) { Settings.IValues values = _settingsProvider.GetValues(); AuthenticationRequest authenticationRequest = new AuthenticationRequest { password = request.Password, email = request.EMail }; string serializedRequest = authenticationRequest.ToJson(); HttpContent content = new StringContent(serializedRequest, System.Text.Encoding.UTF8, "application/json"); HttpClient client = new HttpClient(); var response = await client.PostAsync(values.AuthenticationEndpoint, content); string result = await response.Content.ReadAsStringAsync(); AuthenticationResponse authenticationResponse = JsonSerializer.DeserializeFromString <AuthenticationResponse>(result); if (authenticationResponse.GetUserAuthTokenResult != null) { _messageMediator.Publish(new AuthenticationResponseMessage(authenticationResponse.GetUserAuthTokenResult.AccountId, authenticationResponse.GetUserAuthTokenResult.UserAuthToken)); } else { _messageMediator.Publish(new AuthenticationResponseMessage(authenticationResponse.ErrorCode, authenticationResponse.Message, authenticationResponse.Source)); } }
private void ProcessResponse(IContext context, IAuthenticationResponseMessage message) { if (message.Success) { IAuthenticatedContext authenticatedContext = context.WithAuthentication(message.AccountId, message.AuthenticationToken); _messageMediator.Publish(new TransitionToStateMessage <IAuthenticatedContext>(Name.RetrievingSessionInfo, authenticatedContext)); } else { IFaultedContext faultedContext = context.Faulted(new AuthenticationException(message.Message)); _messageMediator.Publish(new TransitionToStateMessage <IFaultedContext>(Name.Faulted, faultedContext)); } }
public void OnEnter(IContext context) { Instrumentation.State.EnteringState(Name.Starting); _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Authenticating, context)); Instrumentation.State.EnteredState(Name.Starting); }
public void OnEnter(IRegistrationContext context) { Instrumentation.State.EnteringState(Name.Deregistration); DeregisterDevices(context.HarmonyConfiguration.Devices); _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Stopping, context)); Instrumentation.State.EnteredState(Name.Deregistration); }
public Task Start() { IObservable <Unit> observable = ObservableExtentions.Either( _messageMediator.GetEvent <Messages.IStartedMessage>().Timeout(TimeSpan.FromSeconds(30)), _messageMediator.GetEvent <Messages.IErrorMessage>(), (started, error) => { if (error != null) { throw new ApplicationException("Error starting Harmony", error.Exception); } else { return(Unit.Default); } } ); Task result = observable.Take(1).ToTask(); _messageMediator.Publish(new Messages.StartHarmonizingMessage()); return(result); }
protected override void Stop(IContext context, IStopHarmonizingMessage message) { _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Deregistration, (IRegistrationContext)context)); }
protected override void Stop(IContext context, IStopHarmonizingMessage message) { _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Stopping, context)); }
private void ProcessMessage(IContext context, IStartHarmonizingMessage message) { _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Starting, context)); }
public void OnEnter(IFaultedContext context) { _messageMediator.Publish(new Messages.ErrorMessage(context.Exception)); }