public override void Execute()
        {
            base.Execute();

            MNM.NetworkConfigurationDiagnosticParameters parameters = new MNM.NetworkConfigurationDiagnosticParameters();

            parameters.TargetResourceId = this.TargetResourceId;
            parameters.VerbosityLevel   = this.VerbosityLevel;

            parameters.Profiles = new List <MNM.NetworkConfigurationDiagnosticProfile>();
            foreach (PSNetworkConfigurationDiagnosticProfile profile in this.Profile)
            {
                MNM.NetworkConfigurationDiagnosticProfile profileMNM = NetworkResourceManagerProfile.Mapper.Map <MNM.NetworkConfigurationDiagnosticProfile>(profile);
                parameters.Profiles.Add(profileMNM);
            }


            MNM.NetworkConfigurationDiagnosticResponse response = new MNM.NetworkConfigurationDiagnosticResponse();

            if (string.Equals(this.ParameterSetName, "SetByLocation", StringComparison.OrdinalIgnoreCase))
            {
                var networkWatcher = this.GetNetworkWatcherByLocation(this.Location);

                if (networkWatcher == null)
                {
                    throw new ArgumentException("There is no network watcher in location {0}", this.Location);
                }

                this.ResourceGroupName  = NetworkBaseCmdlet.GetResourceGroup(networkWatcher.Id);
                this.NetworkWatcherName = networkWatcher.Name;
            }
            else if (string.Equals(this.ParameterSetName, "SetByResource", StringComparison.OrdinalIgnoreCase))
            {
                this.ResourceGroupName  = this.NetworkWatcher.ResourceGroupName;
                this.NetworkWatcherName = this.NetworkWatcher.Name;
            }
            else if (string.Equals(this.ParameterSetName, "SetByResourceId", StringComparison.OrdinalIgnoreCase))
            {
                var resourceInfo = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName  = resourceInfo.ResourceGroupName;
                this.NetworkWatcherName = resourceInfo.ResourceName;
            }

            response = this.NetworkWatcherClient.GetNetworkConfigurationDiagnostic(this.ResourceGroupName, this.NetworkWatcherName, parameters);
            PSNetworkConfigurationDiagnosticResponse psResponse = NetworkResourceManagerProfile.Mapper.Map <PSNetworkConfigurationDiagnosticResponse>(response);

            WriteObject(psResponse);
        }
 /// <summary>
 /// Initializes a new instance of the
 /// NetworkConfigurationDiagnosticResult class.
 /// </summary>
 /// <param name="profile">Network configuration diagnostic
 /// profile.</param>
 /// <param name="networkSecurityGroupResult">Network security group
 /// result.</param>
 public NetworkConfigurationDiagnosticResult(NetworkConfigurationDiagnosticProfile profile = default(NetworkConfigurationDiagnosticProfile), NetworkSecurityGroupResult networkSecurityGroupResult = default(NetworkSecurityGroupResult))
 {
     Profile = profile;
     NetworkSecurityGroupResult = networkSecurityGroupResult;
     CustomInit();
 }