private void CreateClient(AltitudeAngelClient.Create aaClientFactory)
        {
            string             stateString   = _missionPlanner.LoadSetting("AAWings.Token");
            AuthorizationState existingState = null;

            if (stateString != null)
            {
                existingState = JsonConvert.DeserializeObject <AuthorizationState>(stateString);
            }

            _aaClient = aaClientFactory("https://auth.aa.local", "https://api.aa.local", existingState);
        }
Beispiel #2
0
        private void CreateClient(AltitudeAngelClient.Create aaClientFactory)
        {
            string             stateString   = _missionPlanner.LoadSetting("AAWings.Token");
            AuthorizationState existingState = null;

            if (stateString != null)
            {
                existingState = JsonConvert.DeserializeObject <AuthorizationState>(stateString);
            }

            _aaClient = aaClientFactory(ConfigurationManager.AppSettings["AuthURL"],
                                        ConfigurationManager.AppSettings["APIURL"], existingState);
        }
        public AltitudeAngelService(
            IMessagesService messagesService,
            IMissionPlanner missionPlanner,
            FlightDataService flightDataService,
            AltitudeAngelClient.Create aaClientFactory
            )
        {
            _messagesService   = messagesService;
            _missionPlanner    = missionPlanner;
            _flightDataService = flightDataService;
            IsSignedIn         = new ObservableProperty <bool>(false);
            WeatherReport      = new ObservableProperty <WeatherInfo>();
            SentTelemetry      = new ObservableProperty <Unit>();

            CreateClient(aaClientFactory);

            IObservable <Models.FlightData> armedAndSignedIn = _flightDataService
                                                               .FlightArmed
                                                               .Join(IsSignedIn,
                                                                     i => _flightDataService.FlightDisarmed,
                                                                     i => IsSignedIn.Where(s => !IsSignedIn),
                                                                     (flight, signedIn) => flight);

            IObservable <Models.FlightData> disarmedAndSignedIn = _flightDataService
                                                                  .FlightDisarmed
                                                                  .Join(IsSignedIn,
                                                                        i => _flightDataService.FlightArmed,
                                                                        i => IsSignedIn.Where(s => !IsSignedIn),
                                                                        (flight, signedIn) => flight);

            _disposer.Add(
                armedAndSignedIn.SubscribeAsync(ArmedAndSignedIn));

            _disposer.Add(
                disarmedAndSignedIn.Subscribe(DisarmedAndSignedIn));

            _disposer.Add(_missionPlanner.FlightDataMap
                          .MapChanged
                          .Throttle(TimeSpan.FromSeconds(1))
                          .SubscribeAsync(i => UpdateMapData(_missionPlanner.FlightDataMap)));

            TryConnect();
        }