Exemplo n.º 1
0
        private async Task WatchEntity(ObserverEntity entity, IClient client,
                                       string entityId = null, CancellationToken cancellationToken = default(CancellationToken),
                                       Action <IVehicle> changedAction = null)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }
            if (changedAction == null)
            {
                throw new ArgumentNullException(nameof(changedAction));
            }
            if (_connected)
            {
                throw new Exception("Cant setup more than watch per instance.");
            }

            _entity            = entity;
            _connected         = true;
            _entityId          = entityId;
            _changedAction     = changedAction;
            _cancellationToken = cancellationToken;
            _client            = client;

            Task.Factory.StartNew(MonitorReceive, TaskCreationOptions.LongRunning);
        }
        public async Task <IPlatformResponse <IPushObserverResponse> > GetObserver(ObserverEntity entity, string key, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
        {
            var tokenP = IssueNewTokenAndProgressContainer(cancellationToken, progress);

            if ((await Login(Authorization, cancellationToken, progress)).Success)
            {
                var fragment = $"v2/{entity}/{key}";
                return(await _clientBuilder.Request <IPushObserverResponse>(ApiEndpoint.Push, fragment, tokenP.CancellationToken, tokenP.Progress));
            }
            _log.Fatal(new Exception("Authorization Failed"));
            return(await Task.FromResult <IPlatformResponse <IPushObserverResponse> >(null));
        }
        public async Task <IPlatformResponse <TTr> > AddObserverTransport <TTr>(ObserverEntity entity, string observerKey, ITransport transport, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null) where TTr : ITransport
        {
            var tokenP = IssueNewTokenAndProgressContainer(cancellationToken, progress);

            if ((await Login(Authorization, cancellationToken, progress)).Success)
            {
                var fragment = $"v2/{entity}/{observerKey}/transports";
                var json     = _serializer.SerializeToString(transport);

                return(await _clientBuilder.Request <TTr>(ApiEndpoint.Push, fragment, tokenP.CancellationToken, tokenP.Progress, HttpMethod.Post, json));
            }
            _log.Fatal(new Exception("Authorization Failed"));
            return(await Task.FromResult <IPlatformResponse <TTr> >(null));
        }
        public async Task <IPlatformResponse <IList <IPushObserver> > > GetObservers(ObserverEntity entity, Guid?entityId = null, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
        {
            var tokenP = IssueNewTokenAndProgressContainer(cancellationToken, progress);

            if ((await Login(Authorization, cancellationToken, progress)).Success)
            {
                var fragment = $"v2/{entity}";
                if (entityId.HasValue && entityId.Value != Guid.Empty)
                {
                    fragment = $"{fragment}/{entityId}";
                }
                var result = await _clientBuilder.Request <IList <IPushObserver> >(ApiEndpoint.Push, fragment, tokenP.CancellationToken, tokenP.Progress);

                return(result);
            }
            _log.Fatal(new Exception("Authorization Failed"));
            return(await Task.FromResult <IPlatformResponse <IList <IPushObserver> > >(null));
        }
        public async Task <IPlatformResponse <IPushObserverResponse> > Observe(ObserverEntity entity, Guid?entityId, IPushObserver observer, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
        {
            var tokenP = IssueNewTokenAndProgressContainer(cancellationToken, progress);

            if ((await Login(Authorization, cancellationToken, progress)).Success)
            {
                var fragment = $"v2/{entity}";
                if (entityId.HasValue && entityId.Value != Guid.Empty)
                {
                    fragment = $"{fragment}/{entityId}";
                }

                var json = _serializer.SerializeToString(observer);
                return(await _clientBuilder.Request <IPushObserverResponse>(ApiEndpoint.Push, fragment, tokenP.CancellationToken, tokenP.Progress, HttpMethod.Post, json));
            }

            _log.Fatal(new Exception("Authorization Failed"));
            return(await Task.FromResult <IPlatformResponse <IPushObserverResponse> >(null));
        }
Exemplo n.º 6
0
 public async Task <IPlatformResponse <IPushObserverResponse> > Observe(ObserverEntity entity, Guid?entityId, IPushObserver observer, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
 {
     SetupTokenAndProgress(cancellationToken, progress);
     return(await SdkClient.Observe(entity, entityId, observer, cancellationToken, progress));
 }
Exemplo n.º 7
0
 public Uri WebSocketObserverUri(ObserverEntity entity = ObserverEntity.Vehicles, string id = null)
 {
     return(SdkClient.WebSocketObserverUri(entity, id));
 }
Exemplo n.º 8
0
 public async Task <IPlatformResponse <IPushObserverResponse> > DeleteObserverTransport(ObserverEntity entity, string observerKey, string transportKey, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
 {
     SetupTokenAndProgress(cancellationToken, progress);
     return(await SdkClient.DeleteObserverTransport(entity, observerKey, transportKey, cancellationToken, progress));
 }
Exemplo n.º 9
0
 public async Task <IPlatformResponse <TTr> > AddOrUpdateObserverTransport <TTr>(ObserverEntity entity, string observerKey, ITransport transport, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null) where TTr : ITransport
 {
     SetupTokenAndProgress(cancellationToken, progress);
     return(await SdkClient.AddOrUpdateObserverTransport <TTr>(entity, observerKey, transport, cancellationToken, progress));
 }
Exemplo n.º 10
0
 public async Task <IPlatformResponse <IList <ITransport> > > GetObserverTransports(ObserverEntity entity, string key, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
 {
     SetupTokenAndProgress(cancellationToken, progress);
     return(await SdkClient.GetObserverTransports(entity, key, cancellationToken, progress));
 }
Exemplo n.º 11
0
 public async Task <IPlatformResponse <IList <IPushObserver> > > GetObservers(ObserverEntity entity, Guid?entityId = null, CancellationToken?cancellationToken = null, IProgress <ISDKProgress> progress = null)
 {
     SetupTokenAndProgress(cancellationToken, progress);
     return(await SdkClient.GetObservers(entity, entityId, cancellationToken, progress));
 }
Exemplo n.º 12
0
 public Uri WebSocketObserverUri(ObserverEntity entity = ObserverEntity.Vehicles, string id = null)
 {
     return(new Uri($"{_container.Resolve<IConfiguration>().Environment.APIUri.Replace("https://", "wss://")}v2/{entity}/{id}"));
 }