public async virtual Task <List <AsmCloudService> > GetAzureAsmCloudServices() { if (_CloudServices != null) { return(_CloudServices); } XmlDocument cloudServicesXml = await this.GetAzureAsmResources("CloudServices", null); _CloudServices = new List <AsmCloudService>(); foreach (XmlNode cloudServiceXml in cloudServicesXml.SelectNodes("//HostedService")) { AsmCloudService tempCloudService = new AsmCloudService(_AzureContext, cloudServiceXml); Hashtable cloudServiceInfo = new Hashtable(); cloudServiceInfo.Add("name", tempCloudService.ServiceName); XmlDocument cloudServiceDetailXml = await this.GetAzureAsmResources("CloudService", cloudServiceInfo); AsmCloudService asmCloudService = new AsmCloudService(_AzureContext, cloudServiceDetailXml); _CloudServices.Add(asmCloudService); } List <Task> cloudServiceVMTasks = new List <Task>(); foreach (AsmCloudService asmCloudService in _CloudServices) { cloudServiceVMTasks.Add(asmCloudService.LoadChildrenAsync()); } await Task.WhenAll(cloudServiceVMTasks); return(_CloudServices); }