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)); }
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)); }
public Uri WebSocketObserverUri(ObserverEntity entity = ObserverEntity.Vehicles, string id = null) { return(SdkClient.WebSocketObserverUri(entity, id)); }
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)); }
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)); }
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)); }
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)); }
public Uri WebSocketObserverUri(ObserverEntity entity = ObserverEntity.Vehicles, string id = null) { return(new Uri($"{_container.Resolve<IConfiguration>().Environment.APIUri.Replace("https://", "wss://")}v2/{entity}/{id}")); }