Ejemplo n.º 1
0
        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);
        }