// Method to handle calls to the GetScanInfo method.
        IAsyncOperation <OnboardingGetScanInfoResult> IOnboardingService.GetScanInfoAsync(AllJoynMessageInfo info)
        {
            Task <OnboardingGetScanInfoResult> task = new Task <OnboardingGetScanInfoResult>(() =>
            {
                return(OnboardingGetScanInfoResult.CreateSuccessResult(1, AppData.SampleNetworkScanList));
            });

            task.Start();
            return(task.AsAsyncOperation());
        }
        public IAsyncOperation <OnboardingGetScanInfoResult> GetScanInfoAsync(AllJoynMessageInfo info)
        {
            return(Task.Run(async() =>
            {
                var adapter = await WiFiAdapter.FromIdAsync(_wlanAdapterId);
                await adapter.ScanAsync();

                var availableNetworks = new List <OnboardingScanListItem>();
                foreach (var network in adapter.NetworkReport.AvailableNetworks)
                {
                    var listItem = new OnboardingScanListItem {
                        Value1 = network.Ssid
                    };

                    switch (network.SecuritySettings.NetworkAuthenticationType)
                    {
                    case NetworkAuthenticationType.Open80211:
                        {
                            listItem.Value2 = (short)AuthType.Open;
                            break;
                        }

                    case NetworkAuthenticationType.Wpa:
                        {
                            listItem.Value2 = (short)AuthType.WPA_AUTO;
                            break;
                        }

                    default:
                        {
                            listItem.Value2 = (short)AuthType.Any;
                            break;
                        }
                    }

                    if (availableNetworks.Find(x => x.Value1 == listItem.Value1 && x.Value2 == listItem.Value2) == null)
                    {
                        availableNetworks.Add(listItem);
                    }
                }

                return OnboardingGetScanInfoResult.CreateSuccessResult(0, availableNetworks);
            }).AsAsyncOperation());
        }