private StringBuilder CreateCsvReport(WiFiPointData wifiPoint)
        {
            StringBuilder networkInfo = new StringBuilder();

            networkInfo.AppendLine("MAC,SSID,SignalBars,Type,Lat,Long,Accuracy,Encryption");

            foreach (var wifiSignal in wifiPoint.WiFiSignals)
            {
                networkInfo.Append($"{wifiSignal.MacAddress},");
                networkInfo.Append($"{wifiSignal.Ssid},");
                networkInfo.Append($"{wifiSignal.SignalBars},");
                networkInfo.Append($"{wifiSignal.NetworkKind},");
                networkInfo.Append($"{wifiPoint.Latitude},");
                networkInfo.Append($"{wifiPoint.Longitude},");
                networkInfo.Append($"{wifiPoint.Accuracy},");
                networkInfo.Append($"{wifiSignal.Encryption}");
                networkInfo.AppendLine();
            }

            return(networkInfo);
        }
        private async Task <StringBuilder> RunWifiScan()
        {
            await this._wifiScanner.ScanForNetworks();

            Geolocator  geolocator = new Geolocator();
            Geoposition position   = await geolocator.GetGeopositionAsync();

            WiFiNetworkReport report = this._wifiScanner.WiFiAdapter.NetworkReport;

            var wifiPoint = new WiFiPointData()
            {
                Latitude  = position.Coordinate.Point.Position.Latitude,
                Longitude = position.Coordinate.Point.Position.Longitude,
                Accuracy  = position.Coordinate.Accuracy,
                TimeStamp = position.Coordinate.Timestamp
            };

            foreach (var availableNetwork in report.AvailableNetworks)
            {
                WiFiSignal wifiSignal = new WiFiSignal()
                {
                    MacAddress = availableNetwork.Bssid,
                    Ssid       = availableNetwork.Ssid,
                    SignalBars = availableNetwork.SignalBars,
                    ChannelCenterFrequencyInKilohertz = availableNetwork.ChannelCenterFrequencyInKilohertz,
                    NetworkKind  = availableNetwork.NetworkKind.ToString(),
                    PhysicalKind = availableNetwork.PhyKind.ToString(),
                    Encryption   = availableNetwork.SecuritySettings.NetworkEncryptionType.ToString()
                };

                wifiPoint.WiFiSignals.Add(wifiSignal);
            }

            StringBuilder networkInfo = CreateCsvReport(wifiPoint);

            return(networkInfo);
        }