示例#1
0
        /// <summary>
        /// Order the device to connect to specified network
        /// </summary>
        /// <param name="requestConnectToNetwork"></param>
        /// <returns></returns>
        public async Task <ResultCommandNetworkStatus> ConnectToClientNetwork(RequestCommandConnectToNetwork requestConnectToNetwork)
        {
            var resultConnectToNetwork = await _streamClient.SendCommand <RequestCommandConnectToNetwork, ResultCommandNetworkStatus>
                                             (CommandsEnum.ConnectToNetwork, requestConnectToNetwork, Common.Helpers.SharedConstants.DEFAULT_ENCRYPTION_KEY);

            return(resultConnectToNetwork);
        }
示例#2
0
        public async Task <ResultCommandNetworkStatus> ConnectToClientNetwork(RequestCommandConnectToNetwork requestConnectToNetwork)
        {
            RestRequest request = await PrepareQuery("ConnectToNetwork", Method.POST);

            request.AddParameter("application/json", JsonConvert.SerializeObject(requestConnectToNetwork), ParameterType.RequestBody);
            var queryResult = await _client.ExecuteTaskAsync <Command>(request);

            if (queryResult.IsSuccessful)
            {
                return(GetResultCommand <ResultCommandNetworkStatus>(queryResult.Data));
            }
            else
            {
                Debug.WriteLine($"ConnectToNetwork: {queryResult.StatusCode}");
            }
            return(ResultCommand.CreateFailedCommand <ResultCommandNetworkStatus>($"ConnectToNetwork: {queryResult.StatusCode}"));
        }
示例#3
0
        public async Task <ResultCommandNetworkStatus> ConnectToNetworkHandler(RequestCommandConnectToNetwork requestConnectToNetwork)
        {
            try
            {
                NetworkInformation networkInfo = requestConnectToNetwork.NetworkInformation;

                var wifiSet = await FindWifi(networkInfo.Ssid);

                if (wifiSet != null)
                {
                    if (!await PortalApiHelper.DisconnectFromNetwork(wifiSet.Adapter.NetworkAdapter.NetworkAdapterId))
                    {
                        DebugHelper.LogWarning($"Error while trying to disconnect from network: {wifiSet.Adapter.NetworkAdapter.NetworkAdapterId}");
                    }

                    var availableNetworks = await PortalApiHelper.GetAvailableNetworks(wifiSet.Adapter.NetworkAdapter.NetworkAdapterId);

                    foreach (var network in availableNetworks.AvailableNetworks)
                    {
                        if (network.ProfileAvailable && !await PortalApiHelper.DeleteNetworkProfile(wifiSet.Adapter.NetworkAdapter.NetworkAdapterId, network.ProfileName))
                        {
                            DebugHelper.LogWarning($"Error while trying to disconnect from network: {wifiSet.Adapter.NetworkAdapter.NetworkAdapterId}");
                        }
                    }
                    if (!await PortalApiHelper.ConnectToNetwork(wifiSet.Adapter.NetworkAdapter.NetworkAdapterId, networkInfo.Ssid, networkInfo.Password))
                    {
                        return(ResultCommand.CreateFailedCommand <ResultCommandNetworkStatus>($"Error ConnectToNetworkHandler: Could not connect to network '{networkInfo.Ssid}'."));
                    }

                    return(new ResultCommandNetworkStatus()
                    {
                        IsSuccess = true, Status = "Connected"
                    });
                }
                return(ResultCommand.CreateFailedCommand <ResultCommandNetworkStatus>($"Error ConnectToNetworkHandler: UnspecifiedFailure."));
            }
            catch (Exception e)
            {
                DebugHelper.LogError($"Error ConnectToNetworkHandler: {e.Message}.");
                return(ResultCommand.CreateFailedCommand <ResultCommandNetworkStatus>($"Error ConnectToNetworkHandler: {e.Message}."));
            }
        }