Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        public void OnEnter(IContext context)
        {
            Instrumentation.State.EnteringState(Name.Starting);

            _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Authenticating, context));

            Instrumentation.State.EnteredState(Name.Starting);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 protected override void Stop(IContext context, IStopHarmonizingMessage message)
 {
     _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Deregistration, (IRegistrationContext)context));
 }
Пример #7
0
 protected override void Stop(IContext context, IStopHarmonizingMessage message)
 {
     _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Stopping, context));
 }
Пример #8
0
 private void ProcessMessage(IContext context, IStartHarmonizingMessage message)
 {
     _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Starting, context));
 }
Пример #9
0
 public void OnEnter(IFaultedContext context)
 {
     _messageMediator.Publish(new Messages.ErrorMessage(context.Exception));
 }