/// <summary>
        /// The create exchange peering.
        /// </summary>
        /// <param name="asn">
        /// The asn.
        /// </param>
        /// <returns>
        /// The <see cref="PeeringModel"/>.
        /// </returns>
        private PeeringModel CreateExchangePeeringModel(int asn = 65000)
        {
            // create resource group
            var resourceGroup = this.CreateResourceGroup();

            // Create Asn
            var subId = this.CreatePeerAsn(asn, $"AS{asn}", isApproved: true);

            // Create Exchange Peering
            var ipAddress          = int.Parse(MockServer.GetVariable("ipAddress", this.random.Next(150, 190).ToString()));
            var exchangeConnection = new ExchangeConnection
            {
                ConnectionIdentifier = Guid.NewGuid().ToString(),
                PeeringDBFacilityId  = 99999,
                BgpSession           = new Microsoft.Azure.Management.Peering.Models.BgpSession()
                {
                    PeerSessionIPv4Address  = $"10.12.97.{ipAddress}",
                    MaxPrefixesAdvertisedV4 = 20000
                }
            };
            SubResource asnReference = new SubResource(subId);
            var         exchangePeeringProperties = new PeeringPropertiesExchange(
                new List <ExchangeConnection>(),
                asnReference);

            exchangePeeringProperties.Connections.Add(exchangeConnection);
            var peeringModel = new PeeringModel
            {
                PeeringLocation = "Seattle",
                Sku             = new PeeringSku("Basic_Exchange_Free"),
                Location        = "centralus",
                Exchange        = exchangePeeringProperties,
                Kind            = "Exchange",
                Tags            = new Dictionary <string, string>
                {
                    { TestUtilities.GenerateName("tfs_"), "Active" }
                }
            };
            var name = $"exchangepeering{asn}";

            try
            {
                var result  = this.Client.Peerings.CreateOrUpdate(resourceGroup.Name, name, peeringModel);
                var peering = this.Client.Peerings.Get(resourceGroup.Name, name);
                Assert.NotNull(peering);
                Assert.Equal(name, peering.Name);
                return(peering);
            }
            catch (Exception ex)
            {
                Assert.Contains("NotFound", ex.Message);
            }
            return(null);
        }
        public void CreateExchangePeering()
        {
            using (var context = MockContext.Start(this.GetType().FullName))
            {
                this.client = context.GetServiceClient <PeeringManagementClient>();

                //Create a Resource Group
                this.resourcesClient = context.GetServiceClient <ResourceManagementClient>();
                var rgname        = TestUtilities.GenerateName("res");
                var resourceGroup = resourcesClient.ResourceGroups.CreateOrUpdate(
                    rgname,
                    new ResourceGroup
                {
                    Location = "centralus"
                });


                int asn = 65000;

                //Create Exchange Peering
                var exchangeConnection = new ExchangeConnection
                {
                    PeeringDBFacilityId = 26,
                    BgpSession          = new Microsoft.Azure.Management.Peering.Models.BgpSession()
                    {
                        PeerSessionIPv4Address  = $"80.249.208.{this.random.Next(1, 254)}",
                        MaxPrefixesAdvertisedV4 = 20000
                    }
                };
                SubResource asnReference = new SubResource(this.client.PeerAsns.Get($"Contoso{asn}").Id);
                var         exchangePeeringProperties = new PeeringPropertiesExchange(new List <ExchangeConnection>(), asnReference);
                exchangePeeringProperties.Connections.Add(exchangeConnection);
                var peeringModel = new PeeringModel
                {
                    PeeringLocation = "Amsterdam",
                    Sku             = new PeeringSku("Basic_Exchange_Free"),
                    Location        = "centralus",
                    Exchange        = exchangePeeringProperties,
                    Kind            = "Exchange"
                };
                var name    = $"exchangepeering1022";
                var result  = this.client.Peerings.CreateOrUpdate(rgname, name, peeringModel);
                var peering = this.client.Peerings.Get(rgname, name);
                Assert.NotNull(peering);
                Assert.Equal(name, peering.Name);
            }
        }
        public void CreateExchangePeering()
        {
            using (var context = MockContext.Start(this.GetType()))
            {
                this.client = context.GetServiceClient <PeeringManagementClient>();

                //Create a Resource Group
                this.resourcesClient = context.GetServiceClient <ResourceManagementClient>();
                var rgname        = TestUtilities.GenerateName("res");
                var resourceGroup = resourcesClient.ResourceGroups.CreateOrUpdate(
                    rgname,
                    new ResourceGroup
                {
                    Location = "centralus"
                });

                //Create Asn
                int asn   = 65000;
                var subId = this.CreatePeerAsn(context, asn, $"AS{asn}", isApproved: true);


                //Create Exchange Peering
                var exchangeConnection = new ExchangeConnection
                {
                    ConnectionIdentifier = Guid.NewGuid().ToString(),
                    PeeringDBFacilityId  = 99999,
                    BgpSession           = new Microsoft.Azure.Management.Peering.Models.BgpSession()
                    {
                        PeerSessionIPv4Address  = $"10.12.97.{this.random.Next(150, 190)}",
                        MaxPrefixesAdvertisedV4 = 20000
                    }
                };
                SubResource asnReference = new SubResource(subId);
                var         exchangePeeringProperties = new PeeringPropertiesExchange(new List <ExchangeConnection>(), asnReference);
                exchangePeeringProperties.Connections.Add(exchangeConnection);
                var peeringModel = new PeeringModel
                {
                    PeeringLocation = "Seattle",
                    Sku             = new PeeringSku("Basic_Exchange_Free"),
                    Location        = "centralus",
                    Exchange        = exchangePeeringProperties,
                    Kind            = "Exchange",
                    Tags            = new Dictionary <string, string> {
                        { TestUtilities.GenerateName("tfs_"), "Active" }
                    }
                };
                var name = $"exchangepeering1022";
                try
                {
                    var result  = this.client.Peerings.CreateOrUpdate(rgname, name, peeringModel);
                    var peering = this.client.Peerings.Get(rgname, name);
                    Assert.NotNull(peering);
                    Assert.Equal(name, peering.Name);
                }
                catch (Exception ex)
                {
                    Assert.Contains("NotFound", ex.Message);
                }
                finally
                {
                    Assert.True(this.DeletePeering(context, name, rgname));
                    Assert.True(this.DeletePeerAsn(context, $"AS{asn}"));
                    Assert.True(this.DeleteResourceGroup(context, rgname));
                }
            }
        }