public override void ExecuteCmdlet()
        {
            if (string.IsNullOrEmpty(AccessType))
            {
                AzureDedicatedCircuitStats stats = new AzureDedicatedCircuitStats
                {
                    PrimaryBytesIn    = (ulong)0,
                    PrimaryBytesOut   = (ulong)0,
                    SecondaryBytesIn  = (ulong)0,
                    SecondaryBytesOut = (ulong)0
                };
                stats = compute(stats, ServiceKey, BgpPeeringAccessType.Private);
                stats = compute(stats, ServiceKey, BgpPeeringAccessType.Public);
                stats = compute(stats, ServiceKey, BgpPeeringAccessType.Microsoft);

                WriteObject(stats);
            }
            BgpPeeringAccessType type;

            if (BgpPeeringAccessType.TryParse(AccessType, true, out type))
            {
                var stats = ExpressRouteClient.GetAzureDedicatedCircuitStatsInfo(ServiceKey, type);
                WriteObject(stats);
            }
        }
        private AzureDedicatedCircuitStats compute(AzureDedicatedCircuitStats stats, Guid key, BgpPeeringAccessType type)
        {
            var tempstats = ExpressRouteClient.GetAzureDedicatedCircuitStatsInfo(key, type);

            stats.PrimaryBytesIn    += tempstats.PrimaryBytesIn;
            stats.PrimaryBytesOut   += tempstats.PrimaryBytesOut;
            stats.SecondaryBytesIn  += tempstats.SecondaryBytesIn;
            stats.SecondaryBytesOut += tempstats.SecondaryBytesOut;
            return(stats);
        }
 private AzureDedicatedCircuitStats compute(AzureDedicatedCircuitStats stats, Guid key, BgpPeeringAccessType type)
 {
     try
     {
         AzureBgpPeering peering = ExpressRouteClient.GetAzureBGPPeering(ServiceKey, type);
         if (peering != null)
         {
             var tempstats = ExpressRouteClient.GetAzureDedicatedCircuitStatsInfo(key, type);
             stats.PrimaryBytesIn    += tempstats.PrimaryBytesIn;
             stats.PrimaryBytesOut   += tempstats.PrimaryBytesOut;
             stats.SecondaryBytesIn  += tempstats.SecondaryBytesIn;
             stats.SecondaryBytesOut += tempstats.SecondaryBytesOut;
         }
         return(stats);
     }
     catch
     {
         // The cirucit might not have corresponding peering
         return(stats);
     }
 }