public ConnectionManager(ILogger logger,
            ICredentialProvider credentialProvider,
            INetworkConnection networkConnectivity,
            IServerLocator serverDiscovery,
            string applicationName,
            string applicationVersion,
            IDevice device,
            ClientCapabilities clientCapabilities,
            ICryptographyProvider cryptographyProvider,
            Func<IClientWebSocket> webSocketFactory = null,
            ILocalAssetManager localAssetManager = null)
        {
            _credentialProvider = credentialProvider;
            _networkConnectivity = networkConnectivity;
            _logger = logger;
            _serverDiscovery = serverDiscovery;
            _httpClient = AsyncHttpClientFactory.Create(logger);
            ClientCapabilities = clientCapabilities;
            _webSocketFactory = webSocketFactory;
            _cryptographyProvider = cryptographyProvider;
            _localAssetManager = localAssetManager;

            Device = device;
            ApplicationVersion = applicationVersion;
            ApplicationName = applicationName;
            ApiClients = new Dictionary<string, IApiClient>(StringComparer.OrdinalIgnoreCase);
            SaveLocalCredentials = true;

            Device.ResumeFromSleep += Device_ResumeFromSleep;

            var jsonSerializer = new NewtonsoftJsonSerializer();
            _connectService = new ConnectService(jsonSerializer, _logger, _httpClient, _cryptographyProvider, applicationName, applicationVersion);
        }
Beispiel #2
0
 public ServerSync(IConnectionManager connectionManager, ILogger logger, ILocalAssetManager localAssetManager, IFileTransferManager fileTransferManager, ClientCapabilities clientCapabilities)
 {
     _connectionManager = connectionManager;
     _fileTransferManager = fileTransferManager;
     _clientCapabilities = clientCapabilities;
     _logger = logger;
     _localAssetManager = localAssetManager;
 }
Beispiel #3
0
        public Task SaveCapabilities(string reportedId, ClientCapabilities capabilities)
        {
            var device = GetDevice(reportedId);
            device.Capabilities = capabilities;
            SaveDevice(device);

            return Task.FromResult(true);
        }
Beispiel #4
0
        public Task SaveCapabilities(string reportedId, ClientCapabilities capabilities)
        {
            var device = GetDevice(reportedId);

            if (device == null)
            {
                throw new ArgumentException("No device has been registed with id " + reportedId);
            }

            device.Capabilities = capabilities;
            SaveDevice(device);

            return Task.FromResult(true);
        }
Beispiel #5
0
 public Task SaveCapabilities(string reportedId, ClientCapabilities capabilities)
 {
     return _repo.SaveCapabilities(reportedId, capabilities);
 }
Beispiel #6
0
 public DeviceInfo()
 {
     Capabilities = new ClientCapabilities();
 }
Beispiel #7
0
 private Task SaveCapabilities(string deviceId, ClientCapabilities capabilities)
 {
     return _deviceManager.SaveCapabilities(deviceId, capabilities);
 }
Beispiel #8
0
        private async void ReportCapabilities(SessionInfo session,
            ClientCapabilities capabilities,
            bool saveCapabilities)
        {
            session.PlayableMediaTypes = capabilities.PlayableMediaTypes;
            session.SupportedCommands = capabilities.SupportedCommands;

            if (!string.IsNullOrWhiteSpace(capabilities.MessageCallbackUrl))
            {
                var controller = session.SessionController as HttpSessionController;

                if (controller == null)
                {
                    session.SessionController = new HttpSessionController(_httpClient, _jsonSerializer, session, capabilities.MessageCallbackUrl, this);
                }
            }

            EventHelper.FireEventIfNotNull(CapabilitiesChanged, this, new SessionEventArgs
            {
                SessionInfo = session

            }, _logger);

            if (saveCapabilities)
            {
                await SaveCapabilities(session.DeviceId, capabilities).ConfigureAwait(false);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Reports the capabilities.
        /// </summary>
        /// <param name="sessionId">The session identifier.</param>
        /// <param name="capabilities">The capabilities.</param>
        public void ReportCapabilities(string sessionId, ClientCapabilities capabilities)
        {
            var session = GetSession(sessionId);

            ReportCapabilities(session, capabilities, true);
        }
 public ExtendedApiClient(ILogger logger, string serverHostName, string clientName, IDevice device, string appVersion, ClientCapabilities capabilities)
     : base(logger, serverHostName, clientName, device, appVersion, new CryptographyProvider())
 {
 }