private AzureServiceManagementApiProfile(String publishMethod, String url, byte[] certbytes, String certPWD, AzureSubscription[] subscriptions) : base(publishMethod) { this.Url = new Uri(url); if (String.IsNullOrEmpty(certPWD)) { this.ManagementCertificate = new X509Certificate2(certbytes); } else { this.ManagementCertificate = new X509Certificate2(certbytes, certPWD); } this.Subscriptions = subscriptions.ToList<AzureSubscription>(); }
internal static new PublishProfile Parse(XElement publishProfileElement) { String pubMethod = PublishProfile.ParsePublishMethod(publishProfileElement); if (String.Compare(pubMethod, DeployMethods.AzureServiceManagementAPIMethod, StringComparison.Ordinal) != 0) //throw new ArgumentException(WorkflowResources.WrongPublishMethodInProfile(pubMethod, DeployMethods.AzureServiceManagementAPIMethod), // "publishProfileElement"); throw new ArgumentException(); //all attributes are required except Password, subscription element is not required String url = PublishProfile.ParseAttribute(publishProfileElement, PublishSettingsXNames.X_Url, true); String cert = PublishProfile.ParseAttribute(publishProfileElement, PublishSettingsXNames.X_ManagementCert, true); String certPWD = PublishProfile.ParseAttribute(publishProfileElement, PublishSettingsXNames.X_CertPWD, false); var elements = publishProfileElement.Elements(PublishSettingsXNames.X_Subscription); int subCount = elements.Count(); AzureSubscription[] subs = new AzureSubscription[subCount]; int i = 0; foreach (var elem in elements) { AzureSubscription sub = new AzureSubscription(); sub.Id = new Guid(elem.Attribute(PublishSettingsXNames.X_Id).Value); sub.Name = elem.Attribute(PublishSettingsXNames.X_Name).Value; subs[i++] = sub; } return new AzureServiceManagementApiProfile(pubMethod, url, Convert.FromBase64String(cert), certPWD, subs); }