public static async Task <ConnectionInfo> FromConnectionProfile(ConnectionProfile profile) { var connectionInfo = new ConnectionInfo { Name = profile.ProfileName, IsWlan = profile.IsWlanConnectionProfile, IsWwan = profile.IsWwanConnectionProfile, ConnectivityLevel = profile.GetNetworkConnectivityLevel().ToString(), DomainConnectivityLevel = profile.GetDomainConnectivityLevel().ToString() }; var costType = profile.GetConnectionCost(); connectionInfo.CostType = costType.NetworkCostType.ToString(); connectionInfo.Flags = string.Format( "{0} {1} {2}", costType.ApproachingDataLimit ? "Approaching Data Limit" : string.Empty, costType.OverDataLimit ? "Over Data Limit" : string.Empty, costType.Roaming ? "Roaming" : string.Empty).Trim(); connectionInfo.NetworkAdapterId = profile.ServiceProviderGuid; if (profile.NetworkAdapter != null) { connectionInfo.IncomingBitsPerSecond = (long)profile.NetworkAdapter.InboundMaxBitsPerSecond; connectionInfo.OutgoingBitsPerSecond = (long)profile.NetworkAdapter.OutboundMaxBitsPerSecond; connectionInfo.NetworkType = profile.NetworkAdapter.NetworkItem.GetNetworkTypes().ToString(); } if (profile.NetworkSecuritySettings != null) { connectionInfo.AuthenticationType = profile.NetworkSecuritySettings.NetworkAuthenticationType.ToString(); connectionInfo.EncryptionType = profile.NetworkSecuritySettings.NetworkEncryptionType.ToString(); } connectionInfo.SignalBars = profile.GetSignalBars(); connectionInfo.DataPlan = DataPlanInfo.FromProfile(profile); var usage = await profile.GetNetworkUsageAsync( DateTimeOffset.Now.AddDays(-1), DateTimeOffset.Now, DataUsageGranularity.Total, new NetworkUsageStates { Roaming = TriStates.DoNotCare, Shared = TriStates.DoNotCare }); if (usage != null && usage.Count > 0) { connectionInfo.BytesReceivedLastDay = usage[0].BytesReceived; connectionInfo.BytesSentLastDay = usage[0].BytesSent; } return(connectionInfo); }
// //Get Connection Profile name and cost information // string GetConnectionProfile(ConnectionProfile connectionProfile) { string connectionProfileInfo = string.Empty; if (connectionProfile != null) { connectionProfileInfo = "Profile Name : " + connectionProfile.ProfileName + "\n"; switch (connectionProfile.GetNetworkConnectivityLevel()) { case NetworkConnectivityLevel.None: connectionProfileInfo += "Connectivity Level : None\n"; break; case NetworkConnectivityLevel.LocalAccess: connectionProfileInfo += "Connectivity Level : Local Access\n"; break; case NetworkConnectivityLevel.ConstrainedInternetAccess: connectionProfileInfo += "Connectivity Level : Constrained Internet Access\n"; break; case NetworkConnectivityLevel.InternetAccess: connectionProfileInfo += "Connectivity Level : Internet Access\n"; break; } switch (connectionProfile.GetDomainConnectivityLevel()) { case DomainConnectivityLevel.None: connectionProfileInfo += "Domain Connectivity Level : None\n"; break; case DomainConnectivityLevel.Unauthenticated: connectionProfileInfo += "Domain Connectivity Level : Unauthenticated\n"; break; case DomainConnectivityLevel.Authenticated: connectionProfileInfo += "Domain Connectivity Level : Authenticated\n"; break; } //Get Connection Cost information ConnectionCost connectionCost = connectionProfile.GetConnectionCost(); connectionProfileInfo += GetConnectionCostInfo(connectionCost); //Get Dataplan Status information DataPlanStatus dataPlanStatus = connectionProfile.GetDataPlanStatus(); connectionProfileInfo += GetDataPlanStatusInfo(dataPlanStatus); //Get Network Security Settings NetworkSecuritySettings netSecuritySettings = connectionProfile.NetworkSecuritySettings; connectionProfileInfo += GetNetworkSecuritySettingsInfo(netSecuritySettings); //Get Wlan Connection Profile Details if this is a Wlan ConnectionProfile if (connectionProfile.IsWlanConnectionProfile) { WlanConnectionProfileDetails wlanConnectionProfileDetails = connectionProfile.WlanConnectionProfileDetails; connectionProfileInfo += GetWlanConnectionProfileDetailsInfo(wlanConnectionProfileDetails); } //Get Wwan Connection Profile Details if this is a Wwan ConnectionProfile if (connectionProfile.IsWwanConnectionProfile) { WwanConnectionProfileDetails wwanConnectionProfileDetails = connectionProfile.WwanConnectionProfileDetails; connectionProfileInfo += GetWwanConnectionProfileDetailsInfo(wwanConnectionProfileDetails); } //Get the Service Provider GUID if (connectionProfile.ServiceProviderGuid.HasValue) { connectionProfileInfo += "====================\n"; connectionProfileInfo += "Service Provider GUID: " + connectionProfile.ServiceProviderGuid + "\n"; } //Get the number of signal bars if (connectionProfile.GetSignalBars().HasValue) { connectionProfileInfo += "====================\n"; connectionProfileInfo += "Signal Bars: " + connectionProfile.GetSignalBars() + "\n"; } } return(connectionProfileInfo); }