Beispiel #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));
            }
        }
 public void Setup()
 {
     _settings = A.Fake<Settings.IValues>();
     _commandEndpointFactory = A.Fake<Subject.Network.Command.Endpoint.IFactory>();
     _packetEndpointFactory = A.Fake<Subject.Network.Packet.Endpoint.IFactory>();
     _commandScheduler = new TestScheduler();
 }
Beispiel #3
0
        public void Initialize()
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            _currentState   = _stateFactory.ConstructState(Name.Stopped);
            _currentContext = ContextFactory.Create(settings.EMail, settings.Password);

            EnterState();

            _transitionSubscription = _messageMediator.GetEvent <ITransitionToStateMessage>().ObserveOn(_asyncHelper.AsyncScheduler).Subscribe(ProcessTransition);
        }
Beispiel #4
0
        private async void Authenticate(IAuthenticatedContext context)
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            try
            {
                Hub.Session.IInfo sessionInfo = await _authenticationProvider.AuthenticateAsync(settings.HarmonyHubAddress, context.AuthenticationToken);

                ISessionContext sessionContext = context.ForSession(sessionInfo);

                _messageMediator.Publish(new TransitionToStateMessage <ISessionContext>(Name.EstablishingSession, sessionContext));
            }
            catch
            {
                _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Stopped, context));
            }
        }
        private async void CreateSession(ISessionContext context)
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            Hub.Endpoint.IInstance endpoint = _endpointFactory.Create(settings.HarmonyHubAddress, context.SessionInfo);

            try
            {
                await endpoint.ConnectAsync();

                IActiveContext activeContext = context.Activate(context.SessionInfo, new Hub.Session.Instance(endpoint));

                _messageMediator.Publish(new TransitionToStateMessage <IActiveContext>(Name.Synchronizing, activeContext));
            }
            catch
            {
                _messageMediator.Publish(new TransitionToStateMessage <IContext>(Name.Stopped, context));
            }
        }
Beispiel #6
0
        public IListen ForListen(Command.Endpoint.IInstance commandEndpoint, Values.Version version)
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            return(new Listen(commandEndpoint, version, settings.LocalPacketEndpoint));
        }
Beispiel #7
0
        public IRegistration ForRegistration(Command.Endpoint.IInstance commandEndpoint, Values.Version version)
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            return(new Registration(commandEndpoint, version, settings.Name, settings.Remarks, settings.OwlMacAddress));
        }
Beispiel #8
0
        public IConfiguration ForConfiguration(Command.Endpoint.IInstance commandEndpoint, Values.Version version)
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            return(new Configuration(commandEndpoint, version, settings.AutoConfigurePacketPort, settings.LocalPacketEndpoint));
        }
Beispiel #9
0
        public IConnection ForConnection()
        {
            Settings.IValues settings = _settingsProvider.GetValues();

            return(new Connection(settings.LocalCommandEndpoint, settings.OwlCommandEndpoint));
        }