Microsoft.Azure.ServiceManagemenet.Common.ProfileClient.MergeEnvironmentProperties C# (CSharp) Method

MergeEnvironmentProperties() private method

private MergeEnvironmentProperties ( AzureEnvironment environment1, AzureEnvironment environment2 ) : AzureEnvironment
environment1 Microsoft.Azure.Commands.Common.Authentication.Models.AzureEnvironment
environment2 Microsoft.Azure.Commands.Common.Authentication.Models.AzureEnvironment
return Microsoft.Azure.Commands.Common.Authentication.Models.AzureEnvironment
        private AzureEnvironment MergeEnvironmentProperties(AzureEnvironment environment1, AzureEnvironment environment2)
        {
            if (environment1 == null || environment2 == null)
            {
                throw new ArgumentNullException("environment1");
            }
            if (!string.Equals(environment1.Name, environment2.Name, StringComparison.InvariantCultureIgnoreCase))
            {
                throw new ArgumentException("Environment names do not match.");
            }
            AzureEnvironment mergedEnvironment = new AzureEnvironment
            {
                Name = environment1.Name
            };

            // Merge all properties
            foreach (AzureEnvironment.Endpoint property in Enum.GetValues(typeof(AzureEnvironment.Endpoint)))
            {
                string propertyValue = environment1.GetEndpoint(property) ?? environment2.GetEndpoint(property);
                if (propertyValue != null)
                {
                    mergedEnvironment.Endpoints[property] = propertyValue;
                }
            }

            return mergedEnvironment;
        }