using Microsoft.Phone.Controls;
using Microsoft.Phone.Net.NetworkInformation;

namespace WPNetworkInterface
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
            if (NetworkInterface.GetIsNetworkAvailable())
            {
                switch (NetworkInterface.NetworkInterfaceType)
                {
                    case NetworkInterfaceType.AsymmetricDsl:
                    case NetworkInterfaceType.Ethernet:
                    case NetworkInterfaceType.Ethernet3Megabit:
                    case NetworkInterfaceType.FastEthernetFx:
                    case NetworkInterfaceType.FastEthernetT:
                    case NetworkInterfaceType.Fddi:
                    case NetworkInterfaceType.HighPerformanceSerialBus:
                    case NetworkInterfaceType.GigabitEthernet:
                    case NetworkInterfaceType.MultiRateSymmetricDsl:
                    case NetworkInterfaceType.SymmetricDsl:
                    case NetworkInterfaceType.RateAdaptDsl:
                    case NetworkInterfaceType.TokenRing:
                    case NetworkInterfaceType.VeryHighSpeedDsl:
                    case NetworkInterfaceType.Wireless80211:
                    case NetworkInterfaceType.MobileBroadbandCdma:
                    case NetworkInterfaceType.MobileBroadbandGsm:
                        //Breitbandverbindung ist verfügbar
                        break;
                    case NetworkInterfaceType.Atm:
                    case NetworkInterfaceType.IPOverAtm:
                        //Keine Aussage möglich
                        break;
                    case NetworkInterfaceType.BasicIsdn:
                    case NetworkInterfaceType.Isdn:
                    case NetworkInterfaceType.GenericModem:
                    case NetworkInterfaceType.PrimaryIsdn:
                    case NetworkInterfaceType.Ppp:
                    case NetworkInterfaceType.Slip:
                        //Schmalbandverbindung ist verfügbar
                        break;
                    case NetworkInterfaceType.Loopback:
                    case NetworkInterfaceType.None:
                    case NetworkInterfaceType.Unknown:
                        //Daten können u.U. nicht abgefragt werden.
                        //Man sollte von keiner oder maxial einer Schmalbandverbindung ausgehen
                        break;
                    case NetworkInterfaceType.Tunnel:
                        //Es besteht eine VPN Verbindung - über die Bandbreite gibt es keine Auskunft
                        break;
                    default:
                        break;
                }
            }

        }
    }
}