protected AzureSubscription GetCurrentSubscription(string Subscription, X509Certificate2 certificate)
        {
            if (Subscription.IsNotNullOrEmpty())
            {
                this.WriteWarning("The -Subscription parameter is deprecated, Please use Select-AzureSubscription -Current to select a subscription to use.");

                ProfileClient client = new ProfileClient(new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile)));

                var subscriptionResolver =
                    ServiceLocator.Instance.Locate<IAzureHDInsightSubscriptionResolverFactory>().Create(client.Profile);
                var resolvedSubscription = subscriptionResolver.ResolveSubscription(Subscription);
                if (certificate.IsNotNull() && resolvedSubscription.Account != certificate.Thumbprint)
                {
                    AzureSession.DataStore.AddCertificate(certificate);
                }

                if (resolvedSubscription.IsNull())
                {
                    throw new ArgumentException(
                         string.Format(
                             CultureInfo.InvariantCulture,
                             "Failed to retrieve Certificate for the subscription '{0}'." +
                             "Please use Select-AzureSubscription -Current to select a subscription.",
                             Subscription));
                }

                return resolvedSubscription;
            }
            else
            {
#if DEBUG
                // we need this for the tests to mock out the current subscription.
                if (Profile.Context.Subscription != null)
                {
                    return this.Profile.Context.Subscription;
                }

                return testSubscription;
#else
                return this.Profile.Context.Subscription;
#endif
            }
        }
        protected WindowsAzureSubscription GetCurrentSubscription(string Subscription, X509Certificate2 certificate)
        {
            if (Subscription.IsNotNullOrEmpty())
            {
                this.WriteWarning("The -Subscription parameter is deprecated, Please use Select-AzureSubscription -Current to select a subscription to use.");
                var subscriptionResolver =
                    ServiceLocator.Instance.Locate<IAzureHDInsightSubscriptionResolverFactory>().Create(this.Profile);
                var resolvedSubscription = subscriptionResolver.ResolveSubscription(Subscription);
                if (certificate.IsNotNull() && resolvedSubscription.Certificate.Thumbprint != certificate.Thumbprint)
                {
                    resolvedSubscription.Certificate = certificate;
                }

                if (resolvedSubscription.IsNull())
                {
                    throw new ArgumentException(
                         string.Format(
                             CultureInfo.InvariantCulture,
                             "Failed to retrieve Certificate for the subscription '{0}'." +
                             "Please use Select-AzureSubscription -Current to select a subscription.",
                             Subscription));
                }

                return resolvedSubscription;
            }
            else
            {
#if DEBUG
                // we need this for the tests to mock out the current subscription.
                if (this.HasCurrentSubscription)
                {
                    return this.CurrentSubscription;
                }

                return testSubscription;
#else
                return this.CurrentSubscription;
#endif
            }
        }