public NetworksFlyoutViewModel(IDialogCoordinator coordinator, ISettings settings)
 {
     _coordinator     = coordinator;
     _settings        = settings;
     SelectedNetwork  = Networks.FirstOrDefault();
     PropertyChanged += NetworksFlyoutViewModel_PropertyChanged;
 }
示例#2
0
        private static Network AddNetwork(Network network)
        {
            Network existingItem = Networks.FirstOrDefault(x => x.Id == network.Id);

            if (existingItem != null)
            {
                return(existingItem);
            }

            Networks.Add(network);
            return(network);
        }
        private void AddNetwork(Network network)
        {
            DispatchService.Invoke(() =>
            {
                Networks.Add(network);

                if (!IsNetworkSelected)
                {
                    Network = Networks.FirstOrDefault();
                }
            });
        }
示例#4
0
        public async Task <bool> ConnectAsync()
        {
            if (string.IsNullOrWhiteSpace(Setting.SSID))
            {
                throw new InvalidOperationException("SSID can not be null!");
            }

            await ScanAsync();

            if (Networks.Count > 0)
            {
                var network = Networks.FirstOrDefault(n => n.Ssid == Setting.SSID);
                if (network != null)
                {
                    availableNetwork = network;
                    WiFiConnectionResult result;
                    WiFiReconnectionKind kind = Setting.AutoReconnect ? WiFiReconnectionKind.Automatic : WiFiReconnectionKind.Manual;
                    if (string.IsNullOrWhiteSpace(Setting.Password))
                    {
                        result = await WiFiAdapter.ConnectAsync(network, kind);
                    }
                    else
                    {
                        var password = new PasswordCredential("Tello", "admin", Setting.Password);
                        result = await WiFiAdapter.ConnectAsync(network, kind, password);
                    }

                    if (result.ConnectionStatus == WiFiConnectionStatus.Success)
                    {
                        IsConnected = true;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    logger.LogError($"Can not find SSID:{Setting.SSID}.");
                    throw new InvalidOperationException($"Can not find SSID:{Setting.SSID}.");
                }
            }
            else
            {
                logger.LogError("Can not find any WiFi signal.");
                throw new InvalidOperationException("Can not find any WiFi signal.");
            }
        }
        public async void RemoveNetwork()
        {
            var mySettings = new MetroDialogSettings()
            {
                AffirmativeButtonText = "Delete",
                NegativeButtonText    = "Cancel"
            };

            var result = await _coordinator.ShowMessageAsync(Parent, "Remove Network?", $"Are you sure you want to remove the network: {SelectedNetwork.Name}?", MessageDialogStyle.AffirmativeAndNegative, mySettings);

            if (result == MessageDialogResult.Affirmative)
            {
                Networks.Remove(SelectedNetwork);
                SelectedNetwork = Networks.FirstOrDefault();
            }
        }
 public void RemoveInstance(Guid id)
 {
     Networks.Remove(Networks.FirstOrDefault(i => i.Id == id));
     OnPropertyChanged(nameof(Networks));
 }
 public NetworkModel GetInstance(Guid id)
 {
     return(Networks.FirstOrDefault(i => i.Id == id));
 }
示例#8
0
        public int GetMaxThreads()
        {
            var network = Networks.FirstOrDefault();

            return(network?.MaxThreads.GetValueOrDefault(0) ?? 0);
        }